(function($){ 'use strict'; if(typeof wpcf7==='undefined'||wpcf7===null){ return; } wpcf7=$.extend({ cached: 0, inputs: [] }, wpcf7); $(function(){ wpcf7.supportHtml5=(function(){ var features={}; var input=document.createElement('input'); features.placeholder='placeholder' in input; var inputTypes=[ 'email', 'url', 'tel', 'number', 'range', 'date' ]; $.each(inputTypes, function(index, value){ input.setAttribute('type', value); features[ value ]=input.type!=='text'; }); return features; })(); $('div.wpcf7 > form').each(function(){ var $form=$(this); wpcf7.initForm($form); if(wpcf7.cached){ wpcf7.refill($form); }}); }); wpcf7.getId=function(form){ return parseInt($('input[name="_wpcf7"]', form).val(), 10); }; wpcf7.initForm=function(form){ var $form=$(form); $form.submit(function(event){ if(typeof window.FormData!=='function'){ return; } wpcf7.submit($form); event.preventDefault(); }); $('.wpcf7-submit', $form).after(''); wpcf7.toggleSubmit($form); $form.on('click', '.wpcf7-acceptance', function(){ wpcf7.toggleSubmit($form); }); $('.wpcf7-exclusive-checkbox', $form).on('click', 'input:checkbox', function(){ var name=$(this).attr('name'); $form.find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false); }); $('.wpcf7-list-item.has-free-text', $form).each(function(){ var $freetext=$(':input.wpcf7-free-text', this); var $wrap=$(this).closest('.wpcf7-form-control'); if($(':checkbox, :radio', this).is(':checked')){ $freetext.prop('disabled', false); }else{ $freetext.prop('disabled', true); } $wrap.on('change', ':checkbox, :radio', function(){ var $cb=$('.has-free-text', $wrap).find(':checkbox, :radio'); if($cb.is(':checked')){ $freetext.prop('disabled', false).focus(); }else{ $freetext.prop('disabled', true); }}); }); if(! wpcf7.supportHtml5.placeholder){ $('[placeholder]', $form).each(function(){ $(this).val($(this).attr('placeholder')); $(this).addClass('placeheld'); $(this).focus(function(){ if($(this).hasClass('placeheld')){ $(this).val('').removeClass('placeheld'); }}); $(this).blur(function(){ if(''===$(this).val()){ $(this).val($(this).attr('placeholder')); $(this).addClass('placeheld'); }}); }); } if(wpcf7.jqueryUi&&! wpcf7.supportHtml5.date){ $form.find('input.wpcf7-date[type="date"]').each(function(){ $(this).datepicker({ dateFormat: 'yy-mm-dd', minDate: new Date($(this).attr('min')), maxDate: new Date($(this).attr('max')) }); }); } if(wpcf7.jqueryUi&&! wpcf7.supportHtml5.number){ $form.find('input.wpcf7-number[type="number"]').each(function(){ $(this).spinner({ min: $(this).attr('min'), max: $(this).attr('max'), step: $(this).attr('step') }); }); } $('.wpcf7-character-count', $form).each(function(){ var $count=$(this); var name=$count.attr('data-target-name'); var down=$count.hasClass('down'); var starting=parseInt($count.attr('data-starting-value'), 10); var maximum=parseInt($count.attr('data-maximum-value'), 10); var minimum=parseInt($count.attr('data-minimum-value'), 10); var updateCount=function(target){ var $target=$(target); var length=$target.val().length; var count=down ? starting - length:length; $count.attr('data-current-value', count); $count.text(count); if(maximum&&maximum < length){ $count.addClass('too-long'); }else{ $count.removeClass('too-long'); } if(minimum&&length < minimum){ $count.addClass('too-short'); }else{ $count.removeClass('too-short'); }}; $(':input[name="' + name + '"]', $form).each(function(){ updateCount(this); $(this).keyup(function(){ updateCount(this); }); }); }); $form.on('change', '.wpcf7-validates-as-url', function(){ var val=$.trim($(this).val()); if(val && ! val.match(/^[a-z][a-z0-9.+-]*:/i) && -1!==val.indexOf('.')){ val=val.replace(/^\/+/, ''); val='http://' + val; } $(this).val(val); }); }; wpcf7.submit=function(form){ if(typeof window.FormData!=='function'){ return; } var $form=$(form); $('.ajax-loader', $form).addClass('is-active'); $('[placeholder].placeheld', $form).each(function(i, n){ $(n).val(''); }); wpcf7.clearResponse($form); var formData=new FormData($form.get(0)); var detail={ id: $form.closest('div.wpcf7').attr('id'), status: 'init', inputs: [], formData: formData }; $.each($form.serializeArray(), function(i, field){ if('_wpcf7'==field.name){ detail.contactFormId=field.value; }else if('_wpcf7_version'==field.name){ detail.pluginVersion=field.value; }else if('_wpcf7_locale'==field.name){ detail.contactFormLocale=field.value; }else if('_wpcf7_unit_tag'==field.name){ detail.unitTag=field.value; }else if('_wpcf7_container_post'==field.name){ detail.containerPostId=field.value; }else if(field.name.match(/^_wpcf7_\w+_free_text_/)){ var owner=field.name.replace(/^_wpcf7_\w+_free_text_/, ''); detail.inputs.push({ name: owner + '-free-text', value: field.value }); }else if(field.name.match(/^_/)){ }else{ detail.inputs.push(field); }}); wpcf7.triggerEvent($form.closest('div.wpcf7'), 'beforesubmit', detail); var ajaxSuccess=function(data, status, xhr, $form){ detail.id=$(data.into).attr('id'); detail.status=data.status; var $message=$('.wpcf7-response-output', $form); switch(data.status){ case 'validation_failed': $.each(data.invalidFields, function(i, n){ $(n.into, $form).each(function(){ wpcf7.notValidTip(this, n.message); $('.wpcf7-form-control', this).addClass('wpcf7-not-valid'); $('[aria-invalid]', this).attr('aria-invalid', 'true'); }); }); $message.addClass('wpcf7-validation-errors'); $form.addClass('invalid'); wpcf7.triggerEvent(data.into, 'invalid', detail); break; case 'spam': $message.addClass('wpcf7-spam-blocked'); $form.addClass('spam'); $('[name="g-recaptcha-response"]', $form).each(function(){ if(''===$(this).val()){ var $recaptcha=$(this).closest('.wpcf7-form-control-wrap'); wpcf7.notValidTip($recaptcha, wpcf7.recaptcha.messages.empty); }}); wpcf7.triggerEvent(data.into, 'spam', detail); break; case 'mail_sent': $message.addClass('wpcf7-mail-sent-ok'); $form.addClass('sent'); if(data.onSentOk){ $.each(data.onSentOk, function(i, n){ eval(n) }); } wpcf7.triggerEvent(data.into, 'mailsent', detail); break; case 'mail_failed': case 'acceptance_missing': default: $message.addClass('wpcf7-mail-sent-ng'); $form.addClass('failed'); wpcf7.triggerEvent(data.into, 'mailfailed', detail); } wpcf7.refill($form, data); if(data.onSubmit){ $.each(data.onSubmit, function(i, n){ eval(n) }); } wpcf7.triggerEvent(data.into, 'submit', detail); if('mail_sent'==data.status){ $form.each(function(){ this.reset(); }); } $form.find('[placeholder].placeheld').each(function(i, n){ $(n).val($(n).attr('placeholder')); }); $message.html('').append(data.message).slideDown('fast'); $message.attr('role', 'alert'); $('.screen-reader-response', $form.closest('.wpcf7')).each(function(){ var $response=$(this); $response.html('').attr('role', '').append(data.message); if(data.invalidFields){ var $invalids=$(''); $.each(data.invalidFields, function(i, n){ if(n.idref){ var $li=$('
  • ').append($('').attr('href', '#' + n.idref).append(n.message)); }else{ var $li=$('
  • ').append(n.message); } $invalids.append($li); }); $response.append($invalids); } $response.attr('role', 'alert').focus(); }); }; $.ajax({ type: 'POST', url: wpcf7.apiSettings.getRoute('/contact-forms/' + wpcf7.getId($form) + '/feedback'), data: formData, dataType: 'json', processData: false, contentType: false }).done(function(data, status, xhr){ ajaxSuccess(data, status, xhr, $form); $('.ajax-loader', $form).removeClass('is-active'); }).fail(function(xhr, status, error){ var $e=$('
    ').text(error.message); $form.after($e); }); }; wpcf7.triggerEvent=function(target, name, detail){ var $target=$(target); var event=new CustomEvent('wpcf7' + name, { bubbles: true, detail: detail }); $target.get(0).dispatchEvent(event); $target.trigger('wpcf7:' + name, detail); $target.trigger(name + '.wpcf7', detail); }; wpcf7.toggleSubmit=function(form, state){ var $form=$(form); var $submit=$('input:submit', $form); if(typeof state!=='undefined'){ $submit.prop('disabled', ! state); return; } if($form.hasClass('wpcf7-acceptance-as-validation')){ return; } $submit.prop('disabled', false); $('input:checkbox.wpcf7-acceptance', $form).each(function(){ var $a=$(this); if($a.hasClass('wpcf7-invert')&&$a.is(':checked') || ! $a.hasClass('wpcf7-invert')&&! $a.is(':checked')){ $submit.prop('disabled', true); return false; }}); }; wpcf7.notValidTip=function(target, message){ var $target=$(target); $('.wpcf7-not-valid-tip', $target).remove(); $('') .text(message).appendTo($target); if($target.is('.use-floating-validation-tip *')){ var fadeOut=function(target){ $(target).not(':hidden').animate({ opacity: 0 }, 'fast', function(){ $(this).css({ 'z-index': -100 }); }); }; $target.on('mouseover', '.wpcf7-not-valid-tip', function(){ fadeOut(this); }); $target.on('focus', ':input', function(){ fadeOut($('.wpcf7-not-valid-tip', $target)); }); }}; wpcf7.refill=function(form, data){ var $form=$(form); var refillCaptcha=function($form, items){ $.each(items, function(i, n){ $form.find(':input[name="' + i + '"]').val(''); $form.find('img.wpcf7-captcha-' + i).attr('src', n); var match=/([0-9]+)\.(png|gif|jpeg)$/.exec(n); $form.find('input:hidden[name="_wpcf7_captcha_challenge_' + i + '"]').attr('value', match[ 1 ]); }); }; var refillQuiz=function($form, items){ $.each(items, function(i, n){ $form.find(':input[name="' + i + '"]').val(''); $form.find(':input[name="' + i + '"]').siblings('span.wpcf7-quiz-label').text(n[ 0 ]); $form.find('input:hidden[name="_wpcf7_quiz_answer_' + i + '"]').attr('value', n[ 1 ]); }); }; if(typeof data==='undefined'){ $.ajax({ type: 'GET', url: wpcf7.apiSettings.getRoute('/contact-forms/' + wpcf7.getId($form) + '/refill'), dataType: 'json' }).done(function(data, status, xhr){ if(data.captcha){ refillCaptcha($form, data.captcha); } if(data.quiz){ refillQuiz($form, data.quiz); }}); }else{ if(data.captcha){ refillCaptcha($form, data.captcha); } if(data.quiz){ refillQuiz($form, data.quiz); }} }; wpcf7.clearResponse=function(form){ var $form=$(form); $form.removeClass('invalid spam sent failed'); $form.siblings('.screen-reader-response').html('').attr('role', ''); $('.wpcf7-not-valid-tip', $form).remove(); $('[aria-invalid]', $form).attr('aria-invalid', 'false'); $('.wpcf7-form-control', $form).removeClass('wpcf7-not-valid'); $('.wpcf7-response-output', $form) .hide().empty().removeAttr('role') .removeClass('wpcf7-mail-sent-ok wpcf7-mail-sent-ng wpcf7-validation-errors wpcf7-spam-blocked'); }; wpcf7.apiSettings.getRoute=function(path){ var url=wpcf7.apiSettings.root; url=url.replace(wpcf7.apiSettings.namespace, wpcf7.apiSettings.namespace + path); return url; };})(jQuery); (function (){ if(typeof window.CustomEvent==="function") return false; function CustomEvent(event, params){ params=params||{ bubbles: false, cancelable: false, detail: undefined }; var evt=document.createEvent('CustomEvent'); evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); return evt; } CustomEvent.prototype=window.Event.prototype; window.CustomEvent=CustomEvent; })(); var addComment={moveForm:function(e,t,n,o){var r,i,d,m=this,l=m.I(e),a=m.I(n),c=m.I("cancel-comment-reply-link"),s=m.I("comment_parent"),e=m.I("comment_post_ID"),p=a.getElementsByTagName("form")[0];if(l&&a&&c&&s&&p){m.respondId=n,o=o||!1,m.I("wp-temp-form-div")||((m=document.createElement("div")).id="wp-temp-form-div",m.style.display="none",a.parentNode.insertBefore(m,a)),l.parentNode.insertBefore(a,l.nextSibling),e&&o&&(e.value=o),s.value=t,c.style.display="",c.onclick=function(){var e=addComment,t=e.I("wp-temp-form-div"),n=e.I(e.respondId);if(t&&n)return e.I("comment_parent").value="0",t.parentNode.insertBefore(n,t),t.parentNode.removeChild(t),this.style.display="none",this.onclick=null,!1};try{for(var f=0;f=0)&&focusable(element, !isTabIndexNaN); }}); if(!$("").outerWidth(1).jquery){ $.each([ "Width", "Height" ], function(i, name){ var side=name==="Width" ? [ "Left", "Right" ]:[ "Top", "Bottom" ], type=name.toLowerCase(), orig={ innerWidth: $.fn.innerWidth, innerHeight: $.fn.innerHeight, outerWidth: $.fn.outerWidth, outerHeight: $.fn.outerHeight }; function reduce(elem, size, border, margin){ $.each(side, function(){ size -=parseFloat($.css(elem, "padding" + this))||0; if(border){ size -=parseFloat($.css(elem, "border" + this + "Width"))||0; } if(margin){ size -=parseFloat($.css(elem, "margin" + this))||0; }}); return size; } $.fn[ "inner" + name ]=function(size){ if(size===undefined){ return orig[ "inner" + name ].call(this); } return this.each(function(){ $(this).css(type, reduce(this, size) + "px"); }); }; $.fn[ "outer" + name]=function(size, margin){ if(typeof size!=="number"){ return orig[ "outer" + name ].call(this, size); } return this.each(function(){ $(this).css(type, reduce(this, size, true, margin) + "px"); }); };}); } if(!$.fn.addBack){ $.fn.addBack=function(selector){ return this.add(selector==null ? this.prevObject:this.prevObject.filter(selector) ); };} if($("").data("a-b", "a").removeData("a-b").data("a-b")){ $.fn.removeData=(function(removeData){ return function(key){ if(arguments.length){ return removeData.call(this, $.camelCase(key)); }else{ return removeData.call(this); }};})($.fn.removeData); } $.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()); $.support.selectstart="onselectstart" in document.createElement("div"); $.fn.extend({ disableSelection: function(){ return this.bind(( $.support.selectstart ? "selectstart":"mousedown") + ".ui-disableSelection", function(event){ event.preventDefault(); }); }, enableSelection: function(){ return this.unbind(".ui-disableSelection"); }}); $.extend($.ui, { plugin: { add: function(module, option, set){ var i, proto=$.ui[ module ].prototype; for(i in set){ proto.plugins[ i ]=proto.plugins[ i ]||[]; proto.plugins[ i ].push([ option, set[ i ] ]); }}, call: function(instance, name, args){ var i, set=instance.plugins[ name ]; if(!set||!instance.element[ 0 ].parentNode||instance.element[ 0 ].parentNode.nodeType===11){ return; } for(i=0; i < set.length; i++){ if(instance.options[ set[ i ][ 0 ] ]){ set[ i ][ 1 ].apply(instance.element, args); }} }}, hasScroll: function(el, a){ if($(el).css("overflow")==="hidden"){ return false; } var scroll=(a&&a==="left") ? "scrollLeft":"scrollTop", has=false; if(el[ scroll ] > 0){ return true; } el[ scroll ]=1; has=(el[ scroll ] > 0); el[ scroll ]=0; return has; }}); })(jQuery); (function($, undefined){ var uuid=0, slice=Array.prototype.slice, _cleanData=$.cleanData; $.cleanData=function(elems){ for(var i=0, elem; (elem=elems[i])!=null; i++){ try { $(elem).triggerHandler("remove"); } catch(e){}} _cleanData(elems); }; $.widget=function(name, base, prototype){ var fullName, existingConstructor, constructor, basePrototype, proxiedPrototype={}, namespace=name.split(".")[ 0 ]; name=name.split(".")[ 1 ]; fullName=namespace + "-" + name; if(!prototype){ prototype=base; base=$.Widget; } $.expr[ ":" ][ fullName.toLowerCase() ]=function(elem){ return !!$.data(elem, fullName); }; $[ namespace ]=$[ namespace ]||{}; existingConstructor=$[ namespace ][ name ]; constructor=$[ namespace ][ name ]=function(options, element){ if(!this._createWidget){ return new constructor(options, element); } if(arguments.length){ this._createWidget(options, element); }}; $.extend(constructor, existingConstructor, { version: prototype.version, _proto: $.extend({}, prototype), _childConstructors: [] }); basePrototype=new base(); basePrototype.options=$.widget.extend({}, basePrototype.options); $.each(prototype, function(prop, value){ if(!$.isFunction(value)){ proxiedPrototype[ prop ]=value; return; } proxiedPrototype[ prop ]=(function(){ var _super=function(){ return base.prototype[ prop ].apply(this, arguments); }, _superApply=function(args){ return base.prototype[ prop ].apply(this, args); }; return function(){ var __super=this._super, __superApply=this._superApply, returnValue; this._super=_super; this._superApply=_superApply; returnValue=value.apply(this, arguments); this._super=__super; this._superApply=__superApply; return returnValue; };})(); }); constructor.prototype=$.widget.extend(basePrototype, { widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix:name }, proxiedPrototype, { constructor: constructor, namespace: namespace, widgetName: name, widgetFullName: fullName }); if(existingConstructor){ $.each(existingConstructor._childConstructors, function(i, child){ var childPrototype=child.prototype; $.widget(childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto); }); delete existingConstructor._childConstructors; }else{ base._childConstructors.push(constructor); } $.widget.bridge(name, constructor); }; $.widget.extend=function(target){ var input=slice.call(arguments, 1), inputIndex=0, inputLength=input.length, key, value; for(; inputIndex < inputLength; inputIndex++){ for(key in input[ inputIndex ]){ value=input[ inputIndex ][ key ]; if(input[ inputIndex ].hasOwnProperty(key)&&value!==undefined){ if($.isPlainObject(value)){ target[ key ]=$.isPlainObject(target[ key ]) ? $.widget.extend({}, target[ key ], value) : $.widget.extend({}, value); }else{ target[ key ]=value; }} }} return target; }; $.widget.bridge=function(name, object){ var fullName=object.prototype.widgetFullName||name; $.fn[ name ]=function(options){ var isMethodCall=typeof options==="string", args=slice.call(arguments, 1), returnValue=this; options = !isMethodCall&&args.length ? $.widget.extend.apply(null, [ options ].concat(args)) : options; if(isMethodCall){ this.each(function(){ var methodValue, instance=$.data(this, fullName); if(!instance){ return $.error("cannot call methods on " + name + " prior to initialization; " + "attempted to call method '" + options + "'"); } if(!$.isFunction(instance[options])||options.charAt(0)==="_"){ return $.error("no such method '" + options + "' for " + name + " widget instance"); } methodValue=instance[ options ].apply(instance, args); if(methodValue!==instance&&methodValue!==undefined){ returnValue=methodValue&&methodValue.jquery ? returnValue.pushStack(methodValue.get()) : methodValue; return false; }}); }else{ this.each(function(){ var instance=$.data(this, fullName); if(instance){ instance.option(options||{})._init(); }else{ $.data(this, fullName, new object(options, this)); }}); } return returnValue; };}; $.Widget=function(){}; $.Widget._childConstructors=[]; $.Widget.prototype={ widgetName: "widget", widgetEventPrefix: "", defaultElement: "
    ", options: { disabled: false, create: null }, _createWidget: function(options, element){ element=$(element||this.defaultElement||this)[ 0 ]; this.element=$(element); this.uuid=uuid++; this.eventNamespace="." + this.widgetName + this.uuid; this.options=$.widget.extend({}, this.options, this._getCreateOptions(), options); this.bindings=$(); this.hoverable=$(); this.focusable=$(); if(element!==this){ $.data(element, this.widgetFullName, this); this._on(true, this.element, { remove: function(event){ if(event.target===element){ this.destroy(); }} }); this.document=$(element.style ? element.ownerDocument : element.document||element); this.window=$(this.document[0].defaultView||this.document[0].parentWindow); } this._create(); this._trigger("create", null, this._getCreateEventData()); this._init(); }, _getCreateOptions: $.noop, _getCreateEventData: $.noop, _create: $.noop, _init: $.noop, destroy: function(){ this._destroy(); this.element .unbind(this.eventNamespace) .removeData(this.widgetName) .removeData(this.widgetFullName) .removeData($.camelCase(this.widgetFullName)); this.widget() .unbind(this.eventNamespace) .removeAttr("aria-disabled") .removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"); this.bindings.unbind(this.eventNamespace); this.hoverable.removeClass("ui-state-hover"); this.focusable.removeClass("ui-state-focus"); }, _destroy: $.noop, widget: function(){ return this.element; }, option: function(key, value){ var options=key, parts, curOption, i; if(arguments.length===0){ return $.widget.extend({}, this.options); } if(typeof key==="string"){ options={}; parts=key.split("."); key=parts.shift(); if(parts.length){ curOption=options[ key ]=$.widget.extend({}, this.options[ key ]); for(i=0; i < parts.length - 1; i++){ curOption[ parts[ i ] ]=curOption[ parts[ i ] ]||{}; curOption=curOption[ parts[ i ] ]; } key=parts.pop(); if(value===undefined){ return curOption[ key ]===undefined ? null:curOption[ key ]; } curOption[ key ]=value; }else{ if(value===undefined){ return this.options[ key ]===undefined ? null:this.options[ key ]; } options[ key ]=value; }} this._setOptions(options); return this; }, _setOptions: function(options){ var key; for(key in options){ this._setOption(key, options[ key ]); } return this; }, _setOption: function(key, value){ this.options[ key ]=value; if(key==="disabled"){ this.widget() .toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!value) .attr("aria-disabled", value); this.hoverable.removeClass("ui-state-hover"); this.focusable.removeClass("ui-state-focus"); } return this; }, enable: function(){ return this._setOption("disabled", false); }, disable: function(){ return this._setOption("disabled", true); }, _on: function(suppressDisabledCheck, element, handlers){ var delegateElement, instance=this; if(typeof suppressDisabledCheck!=="boolean"){ handlers=element; element=suppressDisabledCheck; suppressDisabledCheck=false; } if(!handlers){ handlers=element; element=this.element; delegateElement=this.widget(); }else{ element=delegateElement=$(element); this.bindings=this.bindings.add(element); } $.each(handlers, function(event, handler){ function handlerProxy(){ if(!suppressDisabledCheck && (instance.options.disabled===true || $(this).hasClass("ui-state-disabled"))){ return; } return(typeof handler==="string" ? instance[ handler ]:handler) .apply(instance, arguments); } if(typeof handler!=="string"){ handlerProxy.guid=handler.guid = handler.guid||handlerProxy.guid||$.guid++; } var match=event.match(/^(\w+)\s*(.*)$/), eventName=match[1] + instance.eventNamespace, selector=match[2]; if(selector){ delegateElement.delegate(selector, eventName, handlerProxy); }else{ element.bind(eventName, handlerProxy); }}); }, _off: function(element, eventName){ eventName=(eventName||"").split(" ").join(this.eventNamespace + " ") + this.eventNamespace; element.unbind(eventName).undelegate(eventName); }, _delay: function(handler, delay){ function handlerProxy(){ return(typeof handler==="string" ? instance[ handler ]:handler) .apply(instance, arguments); } var instance=this; return setTimeout(handlerProxy, delay||0); }, _hoverable: function(element){ this.hoverable=this.hoverable.add(element); this._on(element, { mouseenter: function(event){ $(event.currentTarget).addClass("ui-state-hover"); }, mouseleave: function(event){ $(event.currentTarget).removeClass("ui-state-hover"); }}); }, _focusable: function(element){ this.focusable=this.focusable.add(element); this._on(element, { focusin: function(event){ $(event.currentTarget).addClass("ui-state-focus"); }, focusout: function(event){ $(event.currentTarget).removeClass("ui-state-focus"); }}); }, _trigger: function(type, event, data){ var prop, orig, callback=this.options[ type ]; data=data||{}; event=$.Event(event); event.type=(type===this.widgetEventPrefix ? type : this.widgetEventPrefix + type).toLowerCase(); event.target=this.element[ 0 ]; orig=event.originalEvent; if(orig){ for(prop in orig){ if(!(prop in event)){ event[ prop ]=orig[ prop ]; }} } this.element.trigger(event, data); return !($.isFunction(callback) && callback.apply(this.element[0], [ event ].concat(data))===false || event.isDefaultPrevented()); }}; $.each({ show: "fadeIn", hide: "fadeOut" }, function(method, defaultEffect){ $.Widget.prototype[ "_" + method ]=function(element, options, callback){ if(typeof options==="string"){ options={ effect: options };} var hasOptions, effectName = !options ? method : options===true||typeof options==="number" ? defaultEffect : options.effect||defaultEffect; options=options||{}; if(typeof options==="number"){ options={ duration: options };} hasOptions = !$.isEmptyObject(options); options.complete=callback; if(options.delay){ element.delay(options.delay); } if(hasOptions&&$.effects&&$.effects.effect[ effectName ]){ element[ method ](options); }else if(effectName!==method&&element[ effectName ]){ element[ effectName ](options.duration, options.easing, callback); }else{ element.queue(function(next){ $(this)[ method ](); if(callback){ callback.call(element[ 0 ]); } next(); }); }};}); })(jQuery); (function($, undefined){ var mouseHandled=false; $(document).mouseup(function(){ mouseHandled=false; }); $.widget("ui.mouse", { version: "1.10.3", options: { cancel: "input,textarea,button,select,option", distance: 1, delay: 0 }, _mouseInit: function(){ var that=this; this.element .bind("mousedown."+this.widgetName, function(event){ return that._mouseDown(event); }) .bind("click."+this.widgetName, function(event){ if(true===$.data(event.target, that.widgetName + ".preventClickEvent")){ $.removeData(event.target, that.widgetName + ".preventClickEvent"); event.stopImmediatePropagation(); return false; }}); this.started=false; }, _mouseDestroy: function(){ this.element.unbind("."+this.widgetName); if(this._mouseMoveDelegate){ $(document) .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate) .unbind("mouseup."+this.widgetName, this._mouseUpDelegate); }}, _mouseDown: function(event){ if(mouseHandled){ return; } (this._mouseStarted&&this._mouseUp(event)); this._mouseDownEvent=event; var that=this, btnIsLeft=(event.which===1), elIsCancel=(typeof this.options.cancel==="string"&&event.target.nodeName ? $(event.target).closest(this.options.cancel).length:false); if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){ return true; } this.mouseDelayMet = !this.options.delay; if(!this.mouseDelayMet){ this._mouseDelayTimer=setTimeout(function(){ that.mouseDelayMet=true; }, this.options.delay); } if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){ this._mouseStarted=(this._mouseStart(event)!==false); if(!this._mouseStarted){ event.preventDefault(); return true; }} if(true===$.data(event.target, this.widgetName + ".preventClickEvent")){ $.removeData(event.target, this.widgetName + ".preventClickEvent"); } this._mouseMoveDelegate=function(event){ return that._mouseMove(event); }; this._mouseUpDelegate=function(event){ return that._mouseUp(event); }; $(document) .bind("mousemove."+this.widgetName, this._mouseMoveDelegate) .bind("mouseup."+this.widgetName, this._mouseUpDelegate); event.preventDefault(); mouseHandled=true; return true; }, _mouseMove: function(event){ if($.ui.ie&&(!document.documentMode||document.documentMode < 9)&&!event.button){ return this._mouseUp(event); } if(this._mouseStarted){ this._mouseDrag(event); return event.preventDefault(); } if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){ this._mouseStarted = (this._mouseStart(this._mouseDownEvent, event)!==false); (this._mouseStarted ? this._mouseDrag(event):this._mouseUp(event)); } return !this._mouseStarted; }, _mouseUp: function(event){ $(document) .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate) .unbind("mouseup."+this.widgetName, this._mouseUpDelegate); if(this._mouseStarted){ this._mouseStarted=false; if(event.target===this._mouseDownEvent.target){ $.data(event.target, this.widgetName + ".preventClickEvent", true); } this._mouseStop(event); } return false; }, _mouseDistanceMet: function(event){ return (Math.max(Math.abs(this._mouseDownEvent.pageX - event.pageX), Math.abs(this._mouseDownEvent.pageY - event.pageY) ) >=this.options.distance ); }, _mouseDelayMet: function(){ return this.mouseDelayMet; }, _mouseStart: function(){}, _mouseDrag: function(){}, _mouseStop: function(){}, _mouseCapture: function(){ return true; }}); })(jQuery); (function($, undefined){ $.widget("ui.draggable", $.ui.mouse, { version: "1.10.3", widgetEventPrefix: "drag", options: { addClasses: true, appendTo: "parent", axis: false, connectToSortable: false, containment: false, cursor: "auto", cursorAt: false, grid: false, handle: false, helper: "original", iframeFix: false, opacity: false, refreshPositions: false, revert: false, revertDuration: 500, scope: "default", scroll: true, scrollSensitivity: 20, scrollSpeed: 20, snap: false, snapMode: "both", snapTolerance: 20, stack: false, zIndex: false, drag: null, start: null, stop: null }, _create: function(){ if(this.options.helper==="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){ this.element[0].style.position="relative"; } if(this.options.addClasses){ this.element.addClass("ui-draggable"); } if(this.options.disabled){ this.element.addClass("ui-draggable-disabled"); } this._mouseInit(); }, _destroy: function(){ this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); this._mouseDestroy(); }, _mouseCapture: function(event){ var o=this.options; if(this.helper||o.disabled||$(event.target).closest(".ui-resizable-handle").length > 0){ return false; } this.handle=this._getHandle(event); if(!this.handle){ return false; } $(o.iframeFix===true ? "iframe":o.iframeFix).each(function(){ $("
    ") .css({ width: this.offsetWidth+"px", height: this.offsetHeight+"px", position: "absolute", opacity: "0.001", zIndex: 1000 }) .css($(this).offset()) .appendTo("body"); }); return true; }, _mouseStart: function(event){ var o=this.options; this.helper=this._createHelper(event); this.helper.addClass("ui-draggable-dragging"); this._cacheHelperProportions(); if($.ui.ddmanager){ $.ui.ddmanager.current=this; } this._cacheMargins(); this.cssPosition=this.helper.css("position"); this.scrollParent=this.helper.scrollParent(); this.offsetParent=this.helper.offsetParent(); this.offsetParentCssPosition=this.offsetParent.css("position"); this.offset=this.positionAbs=this.element.offset(); this.offset={ top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; this.offset.scroll=false; $.extend(this.offset, { click: { left: event.pageX - this.offset.left, top: event.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition=this.position=this._generatePosition(event); this.originalPageX=event.pageX; this.originalPageY=event.pageY; (o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt)); this._setContainment(); if(this._trigger("start", event)===false){ this._clear(); return false; } this._cacheHelperProportions(); if($.ui.ddmanager&&!o.dropBehaviour){ $.ui.ddmanager.prepareOffsets(this, event); } this._mouseDrag(event, true); if($.ui.ddmanager){ $.ui.ddmanager.dragStart(this, event); } return true; }, _mouseDrag: function(event, noPropagation){ if(this.offsetParentCssPosition==="fixed"){ this.offset.parent=this._getParentOffset(); } this.position=this._generatePosition(event); this.positionAbs=this._convertPositionTo("absolute"); if(!noPropagation){ var ui=this._uiHash(); if(this._trigger("drag", event, ui)===false){ this._mouseUp({}); return false; } this.position=ui.position; } if(!this.options.axis||this.options.axis!=="y"){ this.helper[0].style.left=this.position.left+"px"; } if(!this.options.axis||this.options.axis!=="x"){ this.helper[0].style.top=this.position.top+"px"; } if($.ui.ddmanager){ $.ui.ddmanager.drag(this, event); } return false; }, _mouseStop: function(event){ var that=this, dropped=false; if($.ui.ddmanager&&!this.options.dropBehaviour){ dropped=$.ui.ddmanager.drop(this, event); } if(this.dropped){ dropped=this.dropped; this.dropped=false; } if(this.options.helper==="original"&&!$.contains(this.element[ 0 ].ownerDocument, this.element[ 0 ])){ return false; } if((this.options.revert==="invalid"&&!dropped)||(this.options.revert==="valid"&&dropped)||this.options.revert===true||($.isFunction(this.options.revert)&&this.options.revert.call(this.element, dropped))){ $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function(){ if(that._trigger("stop", event)!==false){ that._clear(); }}); }else{ if(this._trigger("stop", event)!==false){ this._clear(); }} return false; }, _mouseUp: function(event){ $("div.ui-draggable-iframeFix").each(function(){ this.parentNode.removeChild(this); }); if($.ui.ddmanager){ $.ui.ddmanager.dragStop(this, event); } return $.ui.mouse.prototype._mouseUp.call(this, event); }, cancel: function(){ if(this.helper.is(".ui-draggable-dragging")){ this._mouseUp({}); }else{ this._clear(); } return this; }, _getHandle: function(event){ return this.options.handle ? !!$(event.target).closest(this.element.find(this.options.handle)).length : true; }, _createHelper: function(event){ var o=this.options, helper=$.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])):(o.helper==="clone" ? this.element.clone().removeAttr("id"):this.element); if(!helper.parents("body").length){ helper.appendTo((o.appendTo==="parent" ? this.element[0].parentNode:o.appendTo)); } if(helper[0]!==this.element[0]&&!(/(fixed|absolute)/).test(helper.css("position"))){ helper.css("position", "absolute"); } return helper; }, _adjustOffsetFromHelper: function(obj){ if(typeof obj==="string"){ obj=obj.split(" "); } if($.isArray(obj)){ obj={left: +obj[0], top: +obj[1]||0};} if("left" in obj){ this.offset.click.left=obj.left + this.margins.left; } if("right" in obj){ this.offset.click.left=this.helperProportions.width - obj.right + this.margins.left; } if("top" in obj){ this.offset.click.top=obj.top + this.margins.top; } if("bottom" in obj){ this.offset.click.top=this.helperProportions.height - obj.bottom + this.margins.top; }}, _getParentOffset: function(){ var po=this.offsetParent.offset(); if(this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&$.contains(this.scrollParent[0], this.offsetParent[0])){ po.left +=this.scrollParent.scrollLeft(); po.top +=this.scrollParent.scrollTop(); } if((this.offsetParent[0]===document.body) || (this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==="html"&&$.ui.ie)){ po={ top: 0, left: 0 };} return { top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10)||0), left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10)||0) };}, _getRelativeOffset: function(){ if(this.cssPosition==="relative"){ var p=this.element.position(); return { top: p.top - (parseInt(this.helper.css("top"),10)||0) + this.scrollParent.scrollTop(), left: p.left - (parseInt(this.helper.css("left"),10)||0) + this.scrollParent.scrollLeft() };}else{ return { top: 0, left: 0 };}}, _cacheMargins: function(){ this.margins={ left: (parseInt(this.element.css("marginLeft"),10)||0), top: (parseInt(this.element.css("marginTop"),10)||0), right: (parseInt(this.element.css("marginRight"),10)||0), bottom: (parseInt(this.element.css("marginBottom"),10)||0) };}, _cacheHelperProportions: function(){ this.helperProportions={ width: this.helper.outerWidth(), height: this.helper.outerHeight() };}, _setContainment: function(){ var over, c, ce, o=this.options; if(!o.containment){ this.containment=null; return; } if(o.containment==="window"){ this.containment=[ $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, $(window).scrollLeft() + $(window).width() - this.helperProportions.width - this.margins.left, $(window).scrollTop() +($(window).height()||document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; return; } if(o.containment==="document"){ this.containment=[ 0, 0, $(document).width() - this.helperProportions.width - this.margins.left, ($(document).height()||document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; return; } if(o.containment.constructor===Array){ this.containment=o.containment; return; } if(o.containment==="parent"){ o.containment=this.helper[ 0 ].parentNode; } c=$(o.containment); ce=c[ 0 ]; if(!ce){ return; } over=c.css("overflow")!=="hidden"; this.containment=[ (parseInt(c.css("borderLeftWidth"), 10)||0) +(parseInt(c.css("paddingLeft"), 10)||0), (parseInt(c.css("borderTopWidth"), 10)||0) +(parseInt(c.css("paddingTop"), 10)||0) , (over ? Math.max(ce.scrollWidth, ce.offsetWidth):ce.offsetWidth) -(parseInt(c.css("borderRightWidth"), 10)||0) -(parseInt(c.css("paddingRight"), 10)||0) - this.helperProportions.width - this.margins.left - this.margins.right, (over ? Math.max(ce.scrollHeight, ce.offsetHeight):ce.offsetHeight) -(parseInt(c.css("borderBottomWidth"), 10)||0) -(parseInt(c.css("paddingBottom"), 10)||0) - this.helperProportions.height - this.margins.top - this.margins.bottom ]; this.relative_container=c; }, _convertPositionTo: function(d, pos){ if(!pos){ pos=this.position; } var mod=d==="absolute" ? 1:-1, scroll=this.cssPosition==="absolute"&&!(this.scrollParent[ 0 ]!==document&&$.contains(this.scrollParent[ 0 ], this.offsetParent[ 0 ])) ? this.offsetParent:this.scrollParent; if(!this.offset.scroll){ this.offset.scroll={top:scroll.scrollTop(), left:scroll.scrollLeft()};} return { top: ( pos.top + this.offset.relative.top * mod + this.offset.parent.top * mod - (( this.cssPosition==="fixed" ? -this.scrollParent.scrollTop():this.offset.scroll.top) * mod) ), left: ( pos.left + this.offset.relative.left * mod + this.offset.parent.left * mod - (( this.cssPosition==="fixed" ? -this.scrollParent.scrollLeft():this.offset.scroll.left) * mod) ) };}, _generatePosition: function(event){ var containment, co, top, left, o=this.options, scroll=this.cssPosition==="absolute"&&!(this.scrollParent[ 0 ]!==document&&$.contains(this.scrollParent[ 0 ], this.offsetParent[ 0 ])) ? this.offsetParent:this.scrollParent, pageX=event.pageX, pageY=event.pageY; if(!this.offset.scroll){ this.offset.scroll={top:scroll.scrollTop(), left:scroll.scrollLeft()};} if(this.originalPosition){ if(this.containment){ if(this.relative_container){ co=this.relative_container.offset(); containment=[ this.containment[ 0 ] + co.left, this.containment[ 1 ] + co.top, this.containment[ 2 ] + co.left, this.containment[ 3 ] + co.top ]; }else{ containment=this.containment; } if(event.pageX - this.offset.click.left < containment[0]){ pageX=containment[0] + this.offset.click.left; } if(event.pageY - this.offset.click.top < containment[1]){ pageY=containment[1] + this.offset.click.top; } if(event.pageX - this.offset.click.left > containment[2]){ pageX=containment[2] + this.offset.click.left; } if(event.pageY - this.offset.click.top > containment[3]){ pageY=containment[3] + this.offset.click.top; }} if(o.grid){ top=o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]:this.originalPageY; pageY=containment ? ((top - this.offset.click.top >=containment[1]||top - this.offset.click.top > containment[3]) ? top:((top - this.offset.click.top >=containment[1]) ? top - o.grid[1]:top + o.grid[1])):top; left=o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]:this.originalPageX; pageX=containment ? ((left - this.offset.click.left >=containment[0]||left - this.offset.click.left > containment[2]) ? left:((left - this.offset.click.left >=containment[0]) ? left - o.grid[0]:left + o.grid[0])):left; }} return { top: ( pageY - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (this.cssPosition==="fixed" ? -this.scrollParent.scrollTop():this.offset.scroll.top) ), left: ( pageX - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (this.cssPosition==="fixed" ? -this.scrollParent.scrollLeft():this.offset.scroll.left) ) };}, _clear: function(){ this.helper.removeClass("ui-draggable-dragging"); if(this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval){ this.helper.remove(); } this.helper=null; this.cancelHelperRemoval=false; }, _trigger: function(type, event, ui){ ui=ui||this._uiHash(); $.ui.plugin.call(this, type, [event, ui]); if(type==="drag"){ this.positionAbs=this._convertPositionTo("absolute"); } return $.Widget.prototype._trigger.call(this, type, event, ui); }, plugins: {}, _uiHash: function(){ return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs };}}); $.ui.plugin.add("draggable", "connectToSortable", { start: function(event, ui){ var inst=$(this).data("ui-draggable"), o=inst.options, uiSortable=$.extend({}, ui, { item: inst.element }); inst.sortables=[]; $(o.connectToSortable).each(function(){ var sortable=$.data(this, "ui-sortable"); if(sortable&&!sortable.options.disabled){ inst.sortables.push({ instance: sortable, shouldRevert: sortable.options.revert }); sortable.refreshPositions(); sortable._trigger("activate", event, uiSortable); }}); }, stop: function(event, ui){ var inst=$(this).data("ui-draggable"), uiSortable=$.extend({}, ui, { item: inst.element }); $.each(inst.sortables, function(){ if(this.instance.isOver){ this.instance.isOver=0; inst.cancelHelperRemoval=true; this.instance.cancelHelperRemoval=false; if(this.shouldRevert){ this.instance.options.revert=this.shouldRevert; } this.instance._mouseStop(event); this.instance.options.helper=this.instance.options._helper; if(inst.options.helper==="original"){ this.instance.currentItem.css({ top: "auto", left: "auto" }); }}else{ this.instance.cancelHelperRemoval=false; this.instance._trigger("deactivate", event, uiSortable); }}); }, drag: function(event, ui){ var inst=$(this).data("ui-draggable"), that=this; $.each(inst.sortables, function(){ var innermostIntersecting=false, thisSortable=this; this.instance.positionAbs=inst.positionAbs; this.instance.helperProportions=inst.helperProportions; this.instance.offset.click=inst.offset.click; if(this.instance._intersectsWith(this.instance.containerCache)){ innermostIntersecting=true; $.each(inst.sortables, function (){ this.instance.positionAbs=inst.positionAbs; this.instance.helperProportions=inst.helperProportions; this.instance.offset.click=inst.offset.click; if(this!==thisSortable && this.instance._intersectsWith(this.instance.containerCache) && $.contains(thisSortable.instance.element[0], this.instance.element[0]) ){ innermostIntersecting=false; } return innermostIntersecting; }); } if(innermostIntersecting){ if(!this.instance.isOver){ this.instance.isOver=1; this.instance.currentItem=$(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true); this.instance.options._helper=this.instance.options.helper; this.instance.options.helper=function(){ return ui.helper[0]; }; event.target=this.instance.currentItem[0]; this.instance._mouseCapture(event, true); this.instance._mouseStart(event, true, true); this.instance.offset.click.top=inst.offset.click.top; this.instance.offset.click.left=inst.offset.click.left; this.instance.offset.parent.left -=inst.offset.parent.left - this.instance.offset.parent.left; this.instance.offset.parent.top -=inst.offset.parent.top - this.instance.offset.parent.top; inst._trigger("toSortable", event); inst.dropped=this.instance.element; inst.currentItem=inst.element; this.instance.fromOutside=inst; } if(this.instance.currentItem){ this.instance._mouseDrag(event); }}else{ if(this.instance.isOver){ this.instance.isOver=0; this.instance.cancelHelperRemoval=true; this.instance.options.revert=false; this.instance._trigger("out", event, this.instance._uiHash(this.instance)); this.instance._mouseStop(event, true); this.instance.options.helper=this.instance.options._helper; this.instance.currentItem.remove(); if(this.instance.placeholder){ this.instance.placeholder.remove(); } inst._trigger("fromSortable", event); inst.dropped=false; }} }); }}); $.ui.plugin.add("draggable", "cursor", { start: function(){ var t=$("body"), o=$(this).data("ui-draggable").options; if(t.css("cursor")){ o._cursor=t.css("cursor"); } t.css("cursor", o.cursor); }, stop: function(){ var o=$(this).data("ui-draggable").options; if(o._cursor){ $("body").css("cursor", o._cursor); }} }); $.ui.plugin.add("draggable", "opacity", { start: function(event, ui){ var t=$(ui.helper), o=$(this).data("ui-draggable").options; if(t.css("opacity")){ o._opacity=t.css("opacity"); } t.css("opacity", o.opacity); }, stop: function(event, ui){ var o=$(this).data("ui-draggable").options; if(o._opacity){ $(ui.helper).css("opacity", o._opacity); }} }); $.ui.plugin.add("draggable", "scroll", { start: function(){ var i=$(this).data("ui-draggable"); if(i.scrollParent[0]!==document&&i.scrollParent[0].tagName!=="HTML"){ i.overflowOffset=i.scrollParent.offset(); }}, drag: function(event){ var i=$(this).data("ui-draggable"), o=i.options, scrolled=false; if(i.scrollParent[0]!==document&&i.scrollParent[0].tagName!=="HTML"){ if(!o.axis||o.axis!=="x"){ if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity){ i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop + o.scrollSpeed; }else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity){ i.scrollParent[0].scrollTop=scrolled=i.scrollParent[0].scrollTop - o.scrollSpeed; }} if(!o.axis||o.axis!=="y"){ if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity){ i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft + o.scrollSpeed; }else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity){ i.scrollParent[0].scrollLeft=scrolled=i.scrollParent[0].scrollLeft - o.scrollSpeed; }} }else{ if(!o.axis||o.axis!=="x"){ if(event.pageY - $(document).scrollTop() < o.scrollSensitivity){ scrolled=$(document).scrollTop($(document).scrollTop() - o.scrollSpeed); }else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity){ scrolled=$(document).scrollTop($(document).scrollTop() + o.scrollSpeed); }} if(!o.axis||o.axis!=="y"){ if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity){ scrolled=$(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); }else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity){ scrolled=$(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); }} } if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){ $.ui.ddmanager.prepareOffsets(i, event); }} }); $.ui.plugin.add("draggable", "snap", { start: function(){ var i=$(this).data("ui-draggable"), o=i.options; i.snapElements=[]; $(o.snap.constructor!==String ?(o.snap.items||":data(ui-draggable)"):o.snap).each(function(){ var $t=$(this), $o=$t.offset(); if(this!==i.element[0]){ i.snapElements.push({ item: this, width: $t.outerWidth(), height: $t.outerHeight(), top: $o.top, left: $o.left }); }}); }, drag: function(event, ui){ var ts, bs, ls, rs, l, r, t, b, i, first, inst=$(this).data("ui-draggable"), o=inst.options, d=o.snapTolerance, x1=ui.offset.left, x2=x1 + inst.helperProportions.width, y1=ui.offset.top, y2=y1 + inst.helperProportions.height; for (i=inst.snapElements.length - 1; i >=0; i--){ l=inst.snapElements[i].left; r=l + inst.snapElements[i].width; t=inst.snapElements[i].top; b=t + inst.snapElements[i].height; if(x2 < l - d||x1 > r + d||y2 < t - d||y1 > b + d||!$.contains(inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item)){ if(inst.snapElements[i].snapping){ (inst.options.snap.release&&inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); } inst.snapElements[i].snapping=false; continue; } if(o.snapMode!=="inner"){ ts=Math.abs(t - y2) <=d; bs=Math.abs(b - y1) <=d; ls=Math.abs(l - x2) <=d; rs=Math.abs(r - x1) <=d; if(ts){ ui.position.top=inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; } if(bs){ ui.position.top=inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; } if(ls){ ui.position.left=inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; } if(rs){ ui.position.left=inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; }} first=(ts||bs||ls||rs); if(o.snapMode!=="outer"){ ts=Math.abs(t - y1) <=d; bs=Math.abs(b - y2) <=d; ls=Math.abs(l - x1) <=d; rs=Math.abs(r - x2) <=d; if(ts){ ui.position.top=inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; } if(bs){ ui.position.top=inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; } if(ls){ ui.position.left=inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; } if(rs){ ui.position.left=inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; }} if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){ (inst.options.snap.snap&&inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); } inst.snapElements[i].snapping=(ts||bs||ls||rs||first); }} }); $.ui.plugin.add("draggable", "stack", { start: function(){ var min, o=this.data("ui-draggable").options, group=$.makeArray($(o.stack)).sort(function(a,b){ return (parseInt($(a).css("zIndex"),10)||0) - (parseInt($(b).css("zIndex"),10)||0); }); if(!group.length){ return; } min=parseInt($(group[0]).css("zIndex"), 10)||0; $(group).each(function(i){ $(this).css("zIndex", min + i); }); this.css("zIndex", (min + group.length)); }}); $.ui.plugin.add("draggable", "zIndex", { start: function(event, ui){ var t=$(ui.helper), o=$(this).data("ui-draggable").options; if(t.css("zIndex")){ o._zIndex=t.css("zIndex"); } t.css("zIndex", o.zIndex); }, stop: function(event, ui){ var o=$(this).data("ui-draggable").options; if(o._zIndex){ $(ui.helper).css("zIndex", o._zIndex); }} }); })(jQuery); (function($, undefined){ function isOverAxis(x, reference, size){ return(x > reference)&&(x <(reference + size)); } $.widget("ui.droppable", { version: "1.10.3", widgetEventPrefix: "drop", options: { accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect", activate: null, deactivate: null, drop: null, out: null, over: null }, _create: function(){ var o=this.options, accept=o.accept; this.isover=false; this.isout=true; this.accept=$.isFunction(accept) ? accept:function(d){ return d.is(accept); }; this.proportions={ width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; $.ui.ddmanager.droppables[o.scope]=$.ui.ddmanager.droppables[o.scope]||[]; $.ui.ddmanager.droppables[o.scope].push(this); (o.addClasses&&this.element.addClass("ui-droppable")); }, _destroy: function(){ var i=0, drop=$.ui.ddmanager.droppables[this.options.scope]; for(; i < drop.length; i++){ if(drop[i]===this){ drop.splice(i, 1); }} this.element.removeClass("ui-droppable ui-droppable-disabled"); }, _setOption: function(key, value){ if(key==="accept"){ this.accept=$.isFunction(value) ? value:function(d){ return d.is(value); };} $.Widget.prototype._setOption.apply(this, arguments); }, _activate: function(event){ var draggable=$.ui.ddmanager.current; if(this.options.activeClass){ this.element.addClass(this.options.activeClass); } if(draggable){ this._trigger("activate", event, this.ui(draggable)); }}, _deactivate: function(event){ var draggable=$.ui.ddmanager.current; if(this.options.activeClass){ this.element.removeClass(this.options.activeClass); } if(draggable){ this._trigger("deactivate", event, this.ui(draggable)); }}, _over: function(event){ var draggable=$.ui.ddmanager.current; if(!draggable||(draggable.currentItem||draggable.element)[0]===this.element[0]){ return; } if(this.accept.call(this.element[0],(draggable.currentItem||draggable.element))){ if(this.options.hoverClass){ this.element.addClass(this.options.hoverClass); } this._trigger("over", event, this.ui(draggable)); }}, _out: function(event){ var draggable=$.ui.ddmanager.current; if(!draggable||(draggable.currentItem||draggable.element)[0]===this.element[0]){ return; } if(this.accept.call(this.element[0],(draggable.currentItem||draggable.element))){ if(this.options.hoverClass){ this.element.removeClass(this.options.hoverClass); } this._trigger("out", event, this.ui(draggable)); }}, _drop: function(event,custom){ var draggable=custom||$.ui.ddmanager.current, childrenIntersection=false; if(!draggable||(draggable.currentItem||draggable.element)[0]===this.element[0]){ return false; } this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){ var inst=$.data(this, "ui-droppable"); if(inst.options.greedy && !inst.options.disabled && inst.options.scope===draggable.options.scope && inst.accept.call(inst.element[0], (draggable.currentItem||draggable.element)) && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) ){ childrenIntersection=true; return false; }}); if(childrenIntersection){ return false; } if(this.accept.call(this.element[0],(draggable.currentItem||draggable.element))){ if(this.options.activeClass){ this.element.removeClass(this.options.activeClass); } if(this.options.hoverClass){ this.element.removeClass(this.options.hoverClass); } this._trigger("drop", event, this.ui(draggable)); return this.element; } return false; }, ui: function(c){ return { draggable: (c.currentItem||c.element), helper: c.helper, position: c.position, offset: c.positionAbs };}}); $.ui.intersect=function(draggable, droppable, toleranceMode){ if(!droppable.offset){ return false; } var draggableLeft, draggableTop, x1=(draggable.positionAbs||draggable.position.absolute).left, x2=x1 + draggable.helperProportions.width, y1=(draggable.positionAbs||draggable.position.absolute).top, y2=y1 + draggable.helperProportions.height, l=droppable.offset.left, r=l + droppable.proportions.width, t=droppable.offset.top, b=t + droppable.proportions.height; switch (toleranceMode){ case "fit": return (l <=x1&&x2 <=r&&t <=y1&&y2 <=b); case "intersect": return (l < x1 + (draggable.helperProportions.width / 2) && x2 - (draggable.helperProportions.width / 2) < r && t < y1 + (draggable.helperProportions.height / 2) && y2 - (draggable.helperProportions.height / 2) < b); case "pointer": draggableLeft=((draggable.positionAbs||draggable.position.absolute).left + (draggable.clickOffset||draggable.offset.click).left); draggableTop=((draggable.positionAbs||draggable.position.absolute).top + (draggable.clickOffset||draggable.offset.click).top); return isOverAxis(draggableTop, t, droppable.proportions.height)&&isOverAxis(draggableLeft, l, droppable.proportions.width); case "touch": return ( (y1 >=t&&y1 <=b) || (y2 >=t&&y2 <=b) || (y1 < t&&y2 > b) )&&( (x1 >=l&&x1 <=r) || (x2 >=l&&x2 <=r) || (x1 < l&&x2 > r) ); default: return false; }}; $.ui.ddmanager={ current: null, droppables: { "default": [] }, prepareOffsets: function(t, event){ var i, j, m=$.ui.ddmanager.droppables[t.options.scope]||[], type=event ? event.type:null, list=(t.currentItem||t.element).find(":data(ui-droppable)").addBack(); droppablesLoop: for (i=0; i < m.length; i++){ if(m[i].options.disabled||(t&&!m[i].accept.call(m[i].element[0],(t.currentItem||t.element)))){ continue; } for (j=0; j < list.length; j++){ if(list[j]===m[i].element[0]){ m[i].proportions.height=0; continue droppablesLoop; }} m[i].visible=m[i].element.css("display")!=="none"; if(!m[i].visible){ continue; } if(type==="mousedown"){ m[i]._activate.call(m[i], event); } m[i].offset=m[i].element.offset(); m[i].proportions={ width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };}}, drop: function(draggable, event){ var dropped=false; $.each(($.ui.ddmanager.droppables[draggable.options.scope]||[]).slice(), function(){ if(!this.options){ return; } if(!this.options.disabled&&this.visible&&$.ui.intersect(draggable, this, this.options.tolerance)){ dropped=this._drop.call(this, event)||dropped; } if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],(draggable.currentItem||draggable.element))){ this.isout=true; this.isover=false; this._deactivate.call(this, event); }}); return dropped; }, dragStart: function(draggable, event){ draggable.element.parentsUntil("body").bind("scroll.droppable", function(){ if(!draggable.options.refreshPositions){ $.ui.ddmanager.prepareOffsets(draggable, event); }}); }, drag: function(draggable, event){ if(draggable.options.refreshPositions){ $.ui.ddmanager.prepareOffsets(draggable, event); } $.each($.ui.ddmanager.droppables[draggable.options.scope]||[], function(){ if(this.options.disabled||this.greedyChild||!this.visible){ return; } var parentInstance, scope, parent, intersects=$.ui.intersect(draggable, this, this.options.tolerance), c = !intersects&&this.isover ? "isout":(intersects&&!this.isover ? "isover":null); if(!c){ return; } if(this.options.greedy){ scope=this.options.scope; parent=this.element.parents(":data(ui-droppable)").filter(function (){ return $.data(this, "ui-droppable").options.scope===scope; }); if(parent.length){ parentInstance=$.data(parent[0], "ui-droppable"); parentInstance.greedyChild=(c==="isover"); }} if(parentInstance&&c==="isover"){ parentInstance.isover=false; parentInstance.isout=true; parentInstance._out.call(parentInstance, event); } this[c]=true; this[c==="isout" ? "isover":"isout"]=false; this[c==="isover" ? "_over":"_out"].call(this, event); if(parentInstance&&c==="isout"){ parentInstance.isout=false; parentInstance.isover=true; parentInstance._over.call(parentInstance, event); }}); }, dragStop: function(draggable, event){ draggable.element.parentsUntil("body").unbind("scroll.droppable"); if(!draggable.options.refreshPositions){ $.ui.ddmanager.prepareOffsets(draggable, event); }} };})(jQuery); (function($, undefined){ function num(v){ return parseInt(v, 10)||0; } function isNumber(value){ return !isNaN(parseInt(value, 10)); } $.widget("ui.resizable", $.ui.mouse, { version: "1.10.3", widgetEventPrefix: "resize", options: { alsoResize: false, animate: false, animateDuration: "slow", animateEasing: "swing", aspectRatio: false, autoHide: false, containment: false, ghost: false, grid: false, handles: "e,s,se", helper: false, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, zIndex: 90, resize: null, start: null, stop: null }, _create: function(){ var n, i, handle, axis, hname, that=this, o=this.options; this.element.addClass("ui-resizable"); $.extend(this, { _aspectRatio: !!(o.aspectRatio), aspectRatio: o.aspectRatio, originalElement: this.element, _proportionallyResizeElements: [], _helper: o.helper||o.ghost||o.animate ? o.helper||"ui-resizable-helper":null }); if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){ this.element.wrap($("
    ").css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(), top: this.element.css("top"), left: this.element.css("left") }) ); this.element=this.element.parent().data("ui-resizable", this.element.data("ui-resizable") ); this.elementIsWrapper=true; this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0}); this.originalResizeStyle=this.originalElement.css("resize"); this.originalElement.css("resize", "none"); this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); this.originalElement.css({ margin: this.originalElement.css("margin") }); this._proportionallyResize(); } this.handles=o.handles||(!$(".ui-resizable-handle", this.element).length ? "e,s,se":{ n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" }); if(this.handles.constructor===String){ if(this.handles==="all"){ this.handles="n,e,s,w,se,sw,ne,nw"; } n=this.handles.split(","); this.handles={}; for(i=0; i < n.length; i++){ handle=$.trim(n[i]); hname="ui-resizable-"+handle; axis=$("
    "); axis.css({ zIndex: o.zIndex }); if("se"===handle){ axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); } this.handles[handle]=".ui-resizable-"+handle; this.element.append(axis); }} this._renderAxis=function(target){ var i, axis, padPos, padWrapper; target=target||this.element; for(i in this.handles){ if(this.handles[i].constructor===String){ this.handles[i]=$(this.handles[i], this.element).show(); } if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){ axis=$(this.handles[i], this.element); padWrapper=/sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight():axis.outerWidth(); padPos=[ "padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right":"Left" ].join(""); target.css(padPos, padWrapper); this._proportionallyResize(); } if(!$(this.handles[i]).length){ continue; }} }; this._renderAxis(this.element); this._handles=$(".ui-resizable-handle", this.element) .disableSelection(); this._handles.mouseover(function(){ if(!that.resizing){ if(this.className){ axis=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); } that.axis=axis&&axis[1] ? axis[1]:"se"; }}); if(o.autoHide){ this._handles.hide(); $(this.element) .addClass("ui-resizable-autohide") .mouseenter(function(){ if(o.disabled){ return; } $(this).removeClass("ui-resizable-autohide"); that._handles.show(); }) .mouseleave(function(){ if(o.disabled){ return; } if(!that.resizing){ $(this).addClass("ui-resizable-autohide"); that._handles.hide(); }}); } this._mouseInit(); }, _destroy: function(){ this._mouseDestroy(); var wrapper, _destroy=function(exp){ $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") .removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove(); }; if(this.elementIsWrapper){ _destroy(this.element); wrapper=this.element; this.originalElement.css({ position: wrapper.css("position"), width: wrapper.outerWidth(), height: wrapper.outerHeight(), top: wrapper.css("top"), left: wrapper.css("left") }).insertAfter(wrapper); wrapper.remove(); } this.originalElement.css("resize", this.originalResizeStyle); _destroy(this.originalElement); return this; }, _mouseCapture: function(event){ var i, handle, capture=false; for (i in this.handles){ handle=$(this.handles[i])[0]; if(handle===event.target||$.contains(handle, event.target)){ capture=true; }} return !this.options.disabled&&capture; }, _mouseStart: function(event){ var curleft, curtop, cursor, o=this.options, iniPos=this.element.position(), el=this.element; this.resizing=true; if((/absolute/).test(el.css("position"))){ el.css({ position: "absolute", top: el.css("top"), left: el.css("left") }); }else if(el.is(".ui-draggable")){ el.css({ position: "absolute", top: iniPos.top, left: iniPos.left }); } this._renderProxy(); curleft=num(this.helper.css("left")); curtop=num(this.helper.css("top")); if(o.containment){ curleft +=$(o.containment).scrollLeft()||0; curtop +=$(o.containment).scrollTop()||0; } this.offset=this.helper.offset(); this.position={ left: curleft, top: curtop }; this.size=this._helper ? { width: el.outerWidth(), height: el.outerHeight() }:{ width: el.width(), height: el.height() }; this.originalSize=this._helper ? { width: el.outerWidth(), height: el.outerHeight() }:{ width: el.width(), height: el.height() }; this.originalPosition={ left: curleft, top: curtop }; this.sizeDiff={ width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; this.originalMousePosition={ left: event.pageX, top: event.pageY }; this.aspectRatio=(typeof o.aspectRatio==="number") ? o.aspectRatio:((this.originalSize.width / this.originalSize.height)||1); cursor=$(".ui-resizable-" + this.axis).css("cursor"); $("body").css("cursor", cursor==="auto" ? this.axis + "-resize":cursor); el.addClass("ui-resizable-resizing"); this._propagate("start", event); return true; }, _mouseDrag: function(event){ var data, el=this.helper, props={}, smp=this.originalMousePosition, a=this.axis, prevTop=this.position.top, prevLeft=this.position.left, prevWidth=this.size.width, prevHeight=this.size.height, dx=(event.pageX-smp.left)||0, dy=(event.pageY-smp.top)||0, trigger=this._change[a]; if(!trigger){ return false; } data=trigger.apply(this, [event, dx, dy]); this._updateVirtualBoundaries(event.shiftKey); if(this._aspectRatio||event.shiftKey){ data=this._updateRatio(data, event); } data=this._respectSize(data, event); this._updateCache(data); this._propagate("resize", event); if(this.position.top!==prevTop){ props.top=this.position.top + "px"; } if(this.position.left!==prevLeft){ props.left=this.position.left + "px"; } if(this.size.width!==prevWidth){ props.width=this.size.width + "px"; } if(this.size.height!==prevHeight){ props.height=this.size.height + "px"; } el.css(props); if(!this._helper&&this._proportionallyResizeElements.length){ this._proportionallyResize(); } if(! $.isEmptyObject(props)){ this._trigger("resize", event, this.ui()); } return false; }, _mouseStop: function(event){ this.resizing=false; var pr, ista, soffseth, soffsetw, s, left, top, o=this.options, that=this; if(this._helper){ pr=this._proportionallyResizeElements; ista=pr.length&&(/textarea/i).test(pr[0].nodeName); soffseth=ista&&$.ui.hasScroll(pr[0], "left") ? 0:that.sizeDiff.height; soffsetw=ista ? 0:that.sizeDiff.width; s={ width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) }; left=(parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left))||null; top=(parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top))||null; if(!o.animate){ this.element.css($.extend(s, { top: top, left: left })); } that.helper.height(that.size.height); that.helper.width(that.size.width); if(this._helper&&!o.animate){ this._proportionallyResize(); }} $("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing"); this._propagate("stop", event); if(this._helper){ this.helper.remove(); } return false; }, _updateVirtualBoundaries: function(forceAspectRatio){ var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, o=this.options; b={ minWidth: isNumber(o.minWidth) ? o.minWidth:0, maxWidth: isNumber(o.maxWidth) ? o.maxWidth:Infinity, minHeight: isNumber(o.minHeight) ? o.minHeight:0, maxHeight: isNumber(o.maxHeight) ? o.maxHeight:Infinity }; if(this._aspectRatio||forceAspectRatio){ pMinWidth=b.minHeight * this.aspectRatio; pMinHeight=b.minWidth / this.aspectRatio; pMaxWidth=b.maxHeight * this.aspectRatio; pMaxHeight=b.maxWidth / this.aspectRatio; if(pMinWidth > b.minWidth){ b.minWidth=pMinWidth; } if(pMinHeight > b.minHeight){ b.minHeight=pMinHeight; } if(pMaxWidth < b.maxWidth){ b.maxWidth=pMaxWidth; } if(pMaxHeight < b.maxHeight){ b.maxHeight=pMaxHeight; }} this._vBoundaries=b; }, _updateCache: function(data){ this.offset=this.helper.offset(); if(isNumber(data.left)){ this.position.left=data.left; } if(isNumber(data.top)){ this.position.top=data.top; } if(isNumber(data.height)){ this.size.height=data.height; } if(isNumber(data.width)){ this.size.width=data.width; }}, _updateRatio: function(data){ var cpos=this.position, csize=this.size, a=this.axis; if(isNumber(data.height)){ data.width=(data.height * this.aspectRatio); }else if(isNumber(data.width)){ data.height=(data.width / this.aspectRatio); } if(a==="sw"){ data.left=cpos.left + (csize.width - data.width); data.top=null; } if(a==="nw"){ data.top=cpos.top + (csize.height - data.height); data.left=cpos.left + (csize.width - data.width); } return data; }, _respectSize: function(data){ var o=this._vBoundaries, a=this.axis, ismaxw=isNumber(data.width)&&o.maxWidth&&(o.maxWidth < data.width), ismaxh=isNumber(data.height)&&o.maxHeight&&(o.maxHeight < data.height), isminw=isNumber(data.width)&&o.minWidth&&(o.minWidth > data.width), isminh=isNumber(data.height)&&o.minHeight&&(o.minHeight > data.height), dw=this.originalPosition.left + this.originalSize.width, dh=this.position.top + this.size.height, cw=/sw|nw|w/.test(a), ch=/nw|ne|n/.test(a); if(isminw){ data.width=o.minWidth; } if(isminh){ data.height=o.minHeight; } if(ismaxw){ data.width=o.maxWidth; } if(ismaxh){ data.height=o.maxHeight; } if(isminw&&cw){ data.left=dw - o.minWidth; } if(ismaxw&&cw){ data.left=dw - o.maxWidth; } if(isminh&&ch){ data.top=dh - o.minHeight; } if(ismaxh&&ch){ data.top=dh - o.maxHeight; } if(!data.width&&!data.height&&!data.left&&data.top){ data.top=null; }else if(!data.width&&!data.height&&!data.top&&data.left){ data.left=null; } return data; }, _proportionallyResize: function(){ if(!this._proportionallyResizeElements.length){ return; } var i, j, borders, paddings, prel, element=this.helper||this.element; for(i=0; i < this._proportionallyResizeElements.length; i++){ prel=this._proportionallyResizeElements[i]; if(!this.borderDif){ this.borderDif=[]; borders=[prel.css("borderTopWidth"), prel.css("borderRightWidth"), prel.css("borderBottomWidth"), prel.css("borderLeftWidth")]; paddings=[prel.css("paddingTop"), prel.css("paddingRight"), prel.css("paddingBottom"), prel.css("paddingLeft")]; for(j=0; j < borders.length; j++){ this.borderDif[ j ]=(parseInt(borders[ j ], 10)||0) +(parseInt(paddings[ j ], 10)||0); }} prel.css({ height: (element.height() - this.borderDif[0] - this.borderDif[2])||0, width: (element.width() - this.borderDif[1] - this.borderDif[3])||0 }); }}, _renderProxy: function(){ var el=this.element, o=this.options; this.elementOffset=el.offset(); if(this._helper){ this.helper=this.helper||$("
    "); this.helper.addClass(this._helper).css({ width: this.element.outerWidth() - 1, height: this.element.outerHeight() - 1, position: "absolute", left: this.elementOffset.left +"px", top: this.elementOffset.top +"px", zIndex: ++o.zIndex }); this.helper .appendTo("body") .disableSelection(); }else{ this.helper=this.element; }}, _change: { e: function(event, dx){ return { width: this.originalSize.width + dx };}, w: function(event, dx){ var cs=this.originalSize, sp=this.originalPosition; return { left: sp.left + dx, width: cs.width - dx };}, n: function(event, dx, dy){ var cs=this.originalSize, sp=this.originalPosition; return { top: sp.top + dy, height: cs.height - dy };}, s: function(event, dx, dy){ return { height: this.originalSize.height + dy };}, se: function(event, dx, dy){ return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); }, sw: function(event, dx, dy){ return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); }, ne: function(event, dx, dy){ return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); }, nw: function(event, dx, dy){ return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); }}, _propagate: function(n, event){ $.ui.plugin.call(this, n, [event, this.ui()]); (n!=="resize"&&this._trigger(n, event, this.ui())); }, plugins: {}, ui: function(){ return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition };}}); $.ui.plugin.add("resizable", "animate", { stop: function(event){ var that=$(this).data("ui-resizable"), o=that.options, pr=that._proportionallyResizeElements, ista=pr.length&&(/textarea/i).test(pr[0].nodeName), soffseth=ista&&$.ui.hasScroll(pr[0], "left") ? 0:that.sizeDiff.height, soffsetw=ista ? 0:that.sizeDiff.width, style={ width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, left=(parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left))||null, top=(parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top))||null; that.element.animate($.extend(style, top&&left ? { top: top, left: left }:{}), { duration: o.animateDuration, easing: o.animateEasing, step: function(){ var data={ width: parseInt(that.element.css("width"), 10), height: parseInt(that.element.css("height"), 10), top: parseInt(that.element.css("top"), 10), left: parseInt(that.element.css("left"), 10) }; if(pr&&pr.length){ $(pr[0]).css({ width: data.width, height: data.height }); } that._updateCache(data); that._propagate("resize", event); }} ); }}); $.ui.plugin.add("resizable", "containment", { start: function(){ var element, p, co, ch, cw, width, height, that=$(this).data("ui-resizable"), o=that.options, el=that.element, oc=o.containment, ce=(oc instanceof $) ? oc.get(0):(/parent/.test(oc)) ? el.parent().get(0):oc; if(!ce){ return; } that.containerElement=$(ce); if(/document/.test(oc)||oc===document){ that.containerOffset={ left: 0, top: 0 }; that.containerPosition={ left: 0, top: 0 }; that.parentData={ element: $(document), left: 0, top: 0, width: $(document).width(), height: $(document).height()||document.body.parentNode.scrollHeight };}else{ element=$(ce); p=[]; $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name){ p[i]=num(element.css("padding" + name)); }); that.containerOffset=element.offset(); that.containerPosition=element.position(); that.containerSize={ height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) }; co=that.containerOffset; ch=that.containerSize.height; cw=that.containerSize.width; width=($.ui.hasScroll(ce, "left") ? ce.scrollWidth:cw); height=($.ui.hasScroll(ce) ? ce.scrollHeight:ch); that.parentData={ element: ce, left: co.left, top: co.top, width: width, height: height };}}, resize: function(event){ var woset, hoset, isParent, isOffsetRelative, that=$(this).data("ui-resizable"), o=that.options, co=that.containerOffset, cp=that.position, pRatio=that._aspectRatio||event.shiftKey, cop={ top:0, left:0 }, ce=that.containerElement; if(ce[0]!==document&&(/static/).test(ce.css("position"))){ cop=co; } if(cp.left < (that._helper ? co.left:0)){ that.size.width=that.size.width + (that._helper ? (that.position.left - co.left):(that.position.left - cop.left)); if(pRatio){ that.size.height=that.size.width / that.aspectRatio; } that.position.left=o.helper ? co.left:0; } if(cp.top < (that._helper ? co.top:0)){ that.size.height=that.size.height + (that._helper ? (that.position.top - co.top):that.position.top); if(pRatio){ that.size.width=that.size.height * that.aspectRatio; } that.position.top=that._helper ? co.top:0; } that.offset.left=that.parentData.left+that.position.left; that.offset.top=that.parentData.top+that.position.top; woset=Math.abs((that._helper ? that.offset.left - cop.left:(that.offset.left - cop.left)) + that.sizeDiff.width); hoset=Math.abs((that._helper ? that.offset.top - cop.top:(that.offset.top - co.top)) + that.sizeDiff.height); isParent=that.containerElement.get(0)===that.element.parent().get(0); isOffsetRelative=/relative|absolute/.test(that.containerElement.css("position")); if(isParent&&isOffsetRelative){ woset -=that.parentData.left; } if(woset + that.size.width >=that.parentData.width){ that.size.width=that.parentData.width - woset; if(pRatio){ that.size.height=that.size.width / that.aspectRatio; }} if(hoset + that.size.height >=that.parentData.height){ that.size.height=that.parentData.height - hoset; if(pRatio){ that.size.width=that.size.height * that.aspectRatio; }} }, stop: function(){ var that=$(this).data("ui-resizable"), o=that.options, co=that.containerOffset, cop=that.containerPosition, ce=that.containerElement, helper=$(that.helper), ho=helper.offset(), w=helper.outerWidth() - that.sizeDiff.width, h=helper.outerHeight() - that.sizeDiff.height; if(that._helper&&!o.animate&&(/relative/).test(ce.css("position"))){ $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); } if(that._helper&&!o.animate&&(/static/).test(ce.css("position"))){ $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); }} }); $.ui.plugin.add("resizable", "alsoResize", { start: function (){ var that=$(this).data("ui-resizable"), o=that.options, _store=function (exp){ $(exp).each(function(){ var el=$(this); el.data("ui-resizable-alsoresize", { width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) }); }); }; if(typeof(o.alsoResize)==="object"&&!o.alsoResize.parentNode){ if(o.alsoResize.length){ o.alsoResize=o.alsoResize[0]; _store(o.alsoResize); }else{ $.each(o.alsoResize, function (exp){ _store(exp); });}}else{ _store(o.alsoResize); }}, resize: function (event, ui){ var that=$(this).data("ui-resizable"), o=that.options, os=that.originalSize, op=that.originalPosition, delta={ height: (that.size.height - os.height)||0, width: (that.size.width - os.width)||0, top: (that.position.top - op.top)||0, left: (that.position.left - op.left)||0 }, _alsoResize=function (exp, c){ $(exp).each(function(){ var el=$(this), start=$(this).data("ui-resizable-alsoresize"), style={}, css=c&&c.length ? c:el.parents(ui.originalElement[0]).length ? ["width", "height"]:["width", "height", "top", "left"]; $.each(css, function (i, prop){ var sum=(start[prop]||0) + (delta[prop]||0); if(sum&&sum >=0){ style[prop]=sum||null; }}); el.css(style); }); }; if(typeof(o.alsoResize)==="object"&&!o.alsoResize.nodeType){ $.each(o.alsoResize, function (exp, c){ _alsoResize(exp, c); }); }else{ _alsoResize(o.alsoResize); }}, stop: function (){ $(this).removeData("resizable-alsoresize"); }}); $.ui.plugin.add("resizable", "ghost", { start: function(){ var that=$(this).data("ui-resizable"), o=that.options, cs=that.size; that.ghost=that.originalElement.clone(); that.ghost .css({ opacity: 0.25, display: "block", position: "relative", height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) .addClass("ui-resizable-ghost") .addClass(typeof o.ghost==="string" ? o.ghost:""); that.ghost.appendTo(that.helper); }, resize: function(){ var that=$(this).data("ui-resizable"); if(that.ghost){ that.ghost.css({ position: "relative", height: that.size.height, width: that.size.width }); }}, stop: function(){ var that=$(this).data("ui-resizable"); if(that.ghost&&that.helper){ that.helper.get(0).removeChild(that.ghost.get(0)); }} }); $.ui.plugin.add("resizable", "grid", { resize: function(){ var that=$(this).data("ui-resizable"), o=that.options, cs=that.size, os=that.originalSize, op=that.originalPosition, a=that.axis, grid=typeof o.grid==="number" ? [o.grid, o.grid]:o.grid, gridX=(grid[0]||1), gridY=(grid[1]||1), ox=Math.round((cs.width - os.width) / gridX) * gridX, oy=Math.round((cs.height - os.height) / gridY) * gridY, newWidth=os.width + ox, newHeight=os.height + oy, isMaxWidth=o.maxWidth&&(o.maxWidth < newWidth), isMaxHeight=o.maxHeight&&(o.maxHeight < newHeight), isMinWidth=o.minWidth&&(o.minWidth > newWidth), isMinHeight=o.minHeight&&(o.minHeight > newHeight); o.grid=grid; if(isMinWidth){ newWidth=newWidth + gridX; } if(isMinHeight){ newHeight=newHeight + gridY; } if(isMaxWidth){ newWidth=newWidth - gridX; } if(isMaxHeight){ newHeight=newHeight - gridY; } if(/^(se|s|e)$/.test(a)){ that.size.width=newWidth; that.size.height=newHeight; }else if(/^(ne)$/.test(a)){ that.size.width=newWidth; that.size.height=newHeight; that.position.top=op.top - oy; }else if(/^(sw)$/.test(a)){ that.size.width=newWidth; that.size.height=newHeight; that.position.left=op.left - ox; }else{ that.size.width=newWidth; that.size.height=newHeight; that.position.top=op.top - oy; that.position.left=op.left - ox; }} }); })(jQuery); (function($, undefined){ $.widget("ui.selectable", $.ui.mouse, { version: "1.10.3", options: { appendTo: "body", autoRefresh: true, distance: 0, filter: "*", tolerance: "touch", selected: null, selecting: null, start: null, stop: null, unselected: null, unselecting: null }, _create: function(){ var selectees, that=this; this.element.addClass("ui-selectable"); this.dragged=false; this.refresh=function(){ selectees=$(that.options.filter, that.element[0]); selectees.addClass("ui-selectee"); selectees.each(function(){ var $this=$(this), pos=$this.offset(); $.data(this, "selectable-item", { element: this, $element: $this, left: pos.left, top: pos.top, right: pos.left + $this.outerWidth(), bottom: pos.top + $this.outerHeight(), startselected: false, selected: $this.hasClass("ui-selected"), selecting: $this.hasClass("ui-selecting"), unselecting: $this.hasClass("ui-unselecting") }); }); }; this.refresh(); this.selectees=selectees.addClass("ui-selectee"); this._mouseInit(); this.helper=$("
    "); }, _destroy: function(){ this.selectees .removeClass("ui-selectee") .removeData("selectable-item"); this.element .removeClass("ui-selectable ui-selectable-disabled"); this._mouseDestroy(); }, _mouseStart: function(event){ var that=this, options=this.options; this.opos=[event.pageX, event.pageY]; if(this.options.disabled){ return; } this.selectees=$(options.filter, this.element[0]); this._trigger("start", event); $(options.appendTo).append(this.helper); this.helper.css({ "left": event.pageX, "top": event.pageY, "width": 0, "height": 0 }); if(options.autoRefresh){ this.refresh(); } this.selectees.filter(".ui-selected").each(function(){ var selectee=$.data(this, "selectable-item"); selectee.startselected=true; if(!event.metaKey&&!event.ctrlKey){ selectee.$element.removeClass("ui-selected"); selectee.selected=false; selectee.$element.addClass("ui-unselecting"); selectee.unselecting=true; that._trigger("unselecting", event, { unselecting: selectee.element }); }}); $(event.target).parents().addBack().each(function(){ var doSelect, selectee=$.data(this, "selectable-item"); if(selectee){ doSelect=(!event.metaKey&&!event.ctrlKey)||!selectee.$element.hasClass("ui-selected"); selectee.$element .removeClass(doSelect ? "ui-unselecting":"ui-selected") .addClass(doSelect ? "ui-selecting":"ui-unselecting"); selectee.unselecting = !doSelect; selectee.selecting=doSelect; selectee.selected=doSelect; if(doSelect){ that._trigger("selecting", event, { selecting: selectee.element }); }else{ that._trigger("unselecting", event, { unselecting: selectee.element }); } return false; }}); }, _mouseDrag: function(event){ this.dragged=true; if(this.options.disabled){ return; } var tmp, that=this, options=this.options, x1=this.opos[0], y1=this.opos[1], x2=event.pageX, y2=event.pageY; if(x1 > x2){ tmp=x2; x2=x1; x1=tmp; } if(y1 > y2){ tmp=y2; y2=y1; y1=tmp; } this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); this.selectees.each(function(){ var selectee=$.data(this, "selectable-item"), hit=false; if(!selectee||selectee.element===that.element[0]){ return; } if(options.tolerance==="touch"){ hit=(!(selectee.left > x2||selectee.right < x1||selectee.top > y2||selectee.bottom < y1)); }else if(options.tolerance==="fit"){ hit=(selectee.left > x1&&selectee.right < x2&&selectee.top > y1&&selectee.bottom < y2); } if(hit){ if(selectee.selected){ selectee.$element.removeClass("ui-selected"); selectee.selected=false; } if(selectee.unselecting){ selectee.$element.removeClass("ui-unselecting"); selectee.unselecting=false; } if(!selectee.selecting){ selectee.$element.addClass("ui-selecting"); selectee.selecting=true; that._trigger("selecting", event, { selecting: selectee.element }); }}else{ if(selectee.selecting){ if((event.metaKey||event.ctrlKey)&&selectee.startselected){ selectee.$element.removeClass("ui-selecting"); selectee.selecting=false; selectee.$element.addClass("ui-selected"); selectee.selected=true; }else{ selectee.$element.removeClass("ui-selecting"); selectee.selecting=false; if(selectee.startselected){ selectee.$element.addClass("ui-unselecting"); selectee.unselecting=true; } that._trigger("unselecting", event, { unselecting: selectee.element }); }} if(selectee.selected){ if(!event.metaKey&&!event.ctrlKey&&!selectee.startselected){ selectee.$element.removeClass("ui-selected"); selectee.selected=false; selectee.$element.addClass("ui-unselecting"); selectee.unselecting=true; that._trigger("unselecting", event, { unselecting: selectee.element }); }} }}); return false; }, _mouseStop: function(event){ var that=this; this.dragged=false; $(".ui-unselecting", this.element[0]).each(function(){ var selectee=$.data(this, "selectable-item"); selectee.$element.removeClass("ui-unselecting"); selectee.unselecting=false; selectee.startselected=false; that._trigger("unselected", event, { unselected: selectee.element }); }); $(".ui-selecting", this.element[0]).each(function(){ var selectee=$.data(this, "selectable-item"); selectee.$element.removeClass("ui-selecting").addClass("ui-selected"); selectee.selecting=false; selectee.selected=true; selectee.startselected=true; that._trigger("selected", event, { selected: selectee.element }); }); this._trigger("stop", event); this.helper.remove(); return false; }}); })(jQuery); (function($, undefined){ function isOverAxis(x, reference, size){ return(x > reference)&&(x <(reference + size)); } function isFloating(item){ return (/left|right/).test(item.css("float"))||(/inline|table-cell/).test(item.css("display")); } $.widget("ui.sortable", $.ui.mouse, { version: "1.10.3", widgetEventPrefix: "sort", ready: false, options: { appendTo: "parent", axis: false, connectWith: false, containment: false, cursor: "auto", cursorAt: false, dropOnEmpty: true, forcePlaceholderSize: false, forceHelperSize: false, grid: false, handle: false, helper: "original", items: "> *", opacity: false, placeholder: false, revert: false, scroll: true, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1000, activate: null, beforeStop: null, change: null, deactivate: null, out: null, over: null, receive: null, remove: null, sort: null, start: null, stop: null, update: null }, _create: function(){ var o=this.options; this.containerCache={}; this.element.addClass("ui-sortable"); this.refresh(); this.floating=this.items.length ? o.axis==="x"||isFloating(this.items[0].item):false; this.offset=this.element.offset(); this._mouseInit(); this.ready=true; }, _destroy: function(){ this.element .removeClass("ui-sortable ui-sortable-disabled"); this._mouseDestroy(); for(var i=this.items.length - 1; i >=0; i--){ this.items[i].item.removeData(this.widgetName + "-item"); } return this; }, _setOption: function(key, value){ if(key==="disabled"){ this.options[ key ]=value; this.widget().toggleClass("ui-sortable-disabled", !!value); }else{ $.Widget.prototype._setOption.apply(this, arguments); }}, _mouseCapture: function(event, overrideHandle){ var currentItem=null, validHandle=false, that=this; if(this.reverting){ return false; } if(this.options.disabled||this.options.type==="static"){ return false; } this._refreshItems(event); $(event.target).parents().each(function(){ if($.data(this, that.widgetName + "-item")===that){ currentItem=$(this); return false; }}); if($.data(event.target, that.widgetName + "-item")===that){ currentItem=$(event.target); } if(!currentItem){ return false; } if(this.options.handle&&!overrideHandle){ $(this.options.handle, currentItem).find("*").addBack().each(function(){ if(this===event.target){ validHandle=true; }}); if(!validHandle){ return false; }} this.currentItem=currentItem; this._removeCurrentsFromItems(); return true; }, _mouseStart: function(event, overrideHandle, noActivation){ var i, body, o=this.options; this.currentContainer=this; this.refreshPositions(); this.helper=this._createHelper(event); this._cacheHelperProportions(); this._cacheMargins(); this.scrollParent=this.helper.scrollParent(); this.offset=this.currentItem.offset(); this.offset={ top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; $.extend(this.offset, { click: { left: event.pageX - this.offset.left, top: event.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.helper.css("position", "absolute"); this.cssPosition=this.helper.css("position"); this.originalPosition=this._generatePosition(event); this.originalPageX=event.pageX; this.originalPageY=event.pageY; (o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt)); this.domPosition={ prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; if(this.helper[0]!==this.currentItem[0]){ this.currentItem.hide(); } this._createPlaceholder(); if(o.containment){ this._setContainment(); } if(o.cursor&&o.cursor!=="auto"){ body=this.document.find("body"); this.storedCursor=body.css("cursor"); body.css("cursor", o.cursor); this.storedStylesheet=$("").appendTo(body); } if(o.opacity){ if(this.helper.css("opacity")){ this._storedOpacity=this.helper.css("opacity"); } this.helper.css("opacity", o.opacity); } if(o.zIndex){ if(this.helper.css("zIndex")){ this._storedZIndex=this.helper.css("zIndex"); } this.helper.css("zIndex", o.zIndex); } if(this.scrollParent[0]!==document&&this.scrollParent[0].tagName!=="HTML"){ this.overflowOffset=this.scrollParent.offset(); } this._trigger("start", event, this._uiHash()); if(!this._preserveHelperProportions){ this._cacheHelperProportions(); } if(!noActivation){ for(i=this.containers.length - 1; i >=0; i--){ this.containers[ i ]._trigger("activate", event, this._uiHash(this)); }} if($.ui.ddmanager){ $.ui.ddmanager.current=this; } if($.ui.ddmanager&&!o.dropBehaviour){ $.ui.ddmanager.prepareOffsets(this, event); } this.dragging=true; this.helper.addClass("ui-sortable-helper"); this._mouseDrag(event); return true; }, _mouseDrag: function(event){ var i, item, itemElement, intersection, o=this.options, scrolled=false; this.position=this._generatePosition(event); this.positionAbs=this._convertPositionTo("absolute"); if(!this.lastPositionAbs){ this.lastPositionAbs=this.positionAbs; } if(this.options.scroll){ if(this.scrollParent[0]!==document&&this.scrollParent[0].tagName!=="HTML"){ if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity){ this.scrollParent[0].scrollTop=scrolled=this.scrollParent[0].scrollTop + o.scrollSpeed; }else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity){ this.scrollParent[0].scrollTop=scrolled=this.scrollParent[0].scrollTop - o.scrollSpeed; } if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity){ this.scrollParent[0].scrollLeft=scrolled=this.scrollParent[0].scrollLeft + o.scrollSpeed; }else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity){ this.scrollParent[0].scrollLeft=scrolled=this.scrollParent[0].scrollLeft - o.scrollSpeed; }}else{ if(event.pageY - $(document).scrollTop() < o.scrollSensitivity){ scrolled=$(document).scrollTop($(document).scrollTop() - o.scrollSpeed); }else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity){ scrolled=$(document).scrollTop($(document).scrollTop() + o.scrollSpeed); } if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity){ scrolled=$(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); }else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity){ scrolled=$(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); }} if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){ $.ui.ddmanager.prepareOffsets(this, event); }} this.positionAbs=this._convertPositionTo("absolute"); if(!this.options.axis||this.options.axis!=="y"){ this.helper[0].style.left=this.position.left+"px"; } if(!this.options.axis||this.options.axis!=="x"){ this.helper[0].style.top=this.position.top+"px"; } for (i=this.items.length - 1; i >=0; i--){ item=this.items[i]; itemElement=item.item[0]; intersection=this._intersectsWithPointer(item); if(!intersection){ continue; } if(item.instance!==this.currentContainer){ continue; } if(itemElement!==this.currentItem[0] && this.placeholder[intersection===1 ? "next":"prev"]()[0]!==itemElement && !$.contains(this.placeholder[0], itemElement) && (this.options.type==="semi-dynamic" ? !$.contains(this.element[0], itemElement):true) ){ this.direction=intersection===1 ? "down":"up"; if(this.options.tolerance==="pointer"||this._intersectsWithSides(item)){ this._rearrange(event, item); }else{ break; } this._trigger("change", event, this._uiHash()); break; }} this._contactContainers(event); if($.ui.ddmanager){ $.ui.ddmanager.drag(this, event); } this._trigger("sort", event, this._uiHash()); this.lastPositionAbs=this.positionAbs; return false; }, _mouseStop: function(event, noPropagation){ if(!event){ return; } if($.ui.ddmanager&&!this.options.dropBehaviour){ $.ui.ddmanager.drop(this, event); } if(this.options.revert){ var that=this, cur=this.placeholder.offset(), axis=this.options.axis, animation={}; if(!axis||axis==="x"){ animation.left=cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0]===document.body ? 0:this.offsetParent[0].scrollLeft); } if(!axis||axis==="y"){ animation.top=cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0]===document.body ? 0:this.offsetParent[0].scrollTop); } this.reverting=true; $(this.helper).animate(animation, parseInt(this.options.revert, 10)||500, function(){ that._clear(event); }); }else{ this._clear(event, noPropagation); } return false; }, cancel: function(){ if(this.dragging){ this._mouseUp({ target: null }); if(this.options.helper==="original"){ this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); }else{ this.currentItem.show(); } for (var i=this.containers.length - 1; i >=0; i--){ this.containers[i]._trigger("deactivate", null, this._uiHash(this)); if(this.containers[i].containerCache.over){ this.containers[i]._trigger("out", null, this._uiHash(this)); this.containers[i].containerCache.over=0; }} } if(this.placeholder){ if(this.placeholder[0].parentNode){ this.placeholder[0].parentNode.removeChild(this.placeholder[0]); } if(this.options.helper!=="original"&&this.helper&&this.helper[0].parentNode){ this.helper.remove(); } $.extend(this, { helper: null, dragging: false, reverting: false, _noFinalSort: null }); if(this.domPosition.prev){ $(this.domPosition.prev).after(this.currentItem); }else{ $(this.domPosition.parent).prepend(this.currentItem); }} return this; }, serialize: function(o){ var items=this._getItemsAsjQuery(o&&o.connected), str=[]; o=o||{}; $(items).each(function(){ var res=($(o.item||this).attr(o.attribute||"id")||"").match(o.expression||(/(.+)[\-=_](.+)/)); if(res){ str.push((o.key||res[1]+"[]")+"="+(o.key&&o.expression ? res[1]:res[2])); }}); if(!str.length&&o.key){ str.push(o.key + "="); } return str.join("&"); }, toArray: function(o){ var items=this._getItemsAsjQuery(o&&o.connected), ret=[]; o=o||{}; items.each(function(){ ret.push($(o.item||this).attr(o.attribute||"id")||""); }); return ret; }, _intersectsWith: function(item){ var x1=this.positionAbs.left, x2=x1 + this.helperProportions.width, y1=this.positionAbs.top, y2=y1 + this.helperProportions.height, l=item.left, r=l + item.width, t=item.top, b=t + item.height, dyClick=this.offset.click.top, dxClick=this.offset.click.left, isOverElementHeight=(this.options.axis==="x")||(( y1 + dyClick) > t&&(y1 + dyClick) < b), isOverElementWidth=(this.options.axis==="y")||(( x1 + dxClick) > l&&(x1 + dxClick) < r), isOverElement=isOverElementHeight&&isOverElementWidth; if(this.options.tolerance==="pointer" || this.options.forcePointerForContainers || (this.options.tolerance!=="pointer"&&this.helperProportions[this.floating ? "width":"height"] > item[this.floating ? "width":"height"]) ){ return isOverElement; }else{ return (l < x1 + (this.helperProportions.width / 2) && x2 - (this.helperProportions.width / 2) < r && t < y1 + (this.helperProportions.height / 2) && y2 - (this.helperProportions.height / 2) < b); }}, _intersectsWithPointer: function(item){ var isOverElementHeight=(this.options.axis==="x")||isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), isOverElementWidth=(this.options.axis==="y")||isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), isOverElement=isOverElementHeight&&isOverElementWidth, verticalDirection=this._getDragVerticalDirection(), horizontalDirection=this._getDragHorizontalDirection(); if(!isOverElement){ return false; } return this.floating ? (((horizontalDirection&&horizontalDirection==="right")||verticalDirection==="down") ? 2:1) :(verticalDirection&&(verticalDirection==="down" ? 2:1)); }, _intersectsWithSides: function(item){ var isOverBottomHalf=isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), isOverRightHalf=isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), verticalDirection=this._getDragVerticalDirection(), horizontalDirection=this._getDragHorizontalDirection(); if(this.floating&&horizontalDirection){ return ((horizontalDirection==="right"&&isOverRightHalf)||(horizontalDirection==="left"&&!isOverRightHalf)); }else{ return verticalDirection&&((verticalDirection==="down"&&isOverBottomHalf)||(verticalDirection==="up"&&!isOverBottomHalf)); }}, _getDragVerticalDirection: function(){ var delta=this.positionAbs.top - this.lastPositionAbs.top; return delta!==0&&(delta > 0 ? "down":"up"); }, _getDragHorizontalDirection: function(){ var delta=this.positionAbs.left - this.lastPositionAbs.left; return delta!==0&&(delta > 0 ? "right":"left"); }, refresh: function(event){ this._refreshItems(event); this.refreshPositions(); return this; }, _connectWith: function(){ var options=this.options; return options.connectWith.constructor===String ? [options.connectWith]:options.connectWith; }, _getItemsAsjQuery: function(connected){ var i, j, cur, inst, items=[], queries=[], connectWith=this._connectWith(); if(connectWith&&connected){ for (i=connectWith.length - 1; i >=0; i--){ cur=$(connectWith[i]); for(j=cur.length - 1; j >=0; j--){ inst=$.data(cur[j], this.widgetFullName); if(inst&&inst!==this&&!inst.options.disabled){ queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element):$(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]); }} }} queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }):$(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); for (i=queries.length - 1; i >=0; i--){ queries[i][0].each(function(){ items.push(this); }); } return $(items); }, _removeCurrentsFromItems: function(){ var list=this.currentItem.find(":data(" + this.widgetName + "-item)"); this.items=$.grep(this.items, function (item){ for (var j=0; j < list.length; j++){ if(list[j]===item.item[0]){ return false; }} return true; }); }, _refreshItems: function(event){ this.items=[]; this.containers=[this]; var i, j, cur, inst, targetData, _queries, item, queriesLength, items=this.items, queries=[[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }):$(this.options.items, this.element), this]], connectWith=this._connectWith(); if(connectWith&&this.ready){ for (i=connectWith.length - 1; i >=0; i--){ cur=$(connectWith[i]); for (j=cur.length - 1; j >=0; j--){ inst=$.data(cur[j], this.widgetFullName); if(inst&&inst!==this&&!inst.options.disabled){ queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }):$(inst.options.items, inst.element), inst]); this.containers.push(inst); }} }} for (i=queries.length - 1; i >=0; i--){ targetData=queries[i][1]; _queries=queries[i][0]; for (j=0, queriesLength=_queries.length; j < queriesLength; j++){ item=$(_queries[j]); item.data(this.widgetName + "-item", targetData); items.push({ item: item, instance: targetData, width: 0, height: 0, left: 0, top: 0 }); }} }, refreshPositions: function(fast){ if(this.offsetParent&&this.helper){ this.offset.parent=this._getParentOffset(); } var i, item, t, p; for (i=this.items.length - 1; i >=0; i--){ item=this.items[i]; if(item.instance!==this.currentContainer&&this.currentContainer&&item.item[0]!==this.currentItem[0]){ continue; } t=this.options.toleranceElement ? $(this.options.toleranceElement, item.item):item.item; if(!fast){ item.width=t.outerWidth(); item.height=t.outerHeight(); } p=t.offset(); item.left=p.left; item.top=p.top; } if(this.options.custom&&this.options.custom.refreshContainers){ this.options.custom.refreshContainers.call(this); }else{ for (i=this.containers.length - 1; i >=0; i--){ p=this.containers[i].element.offset(); this.containers[i].containerCache.left=p.left; this.containers[i].containerCache.top=p.top; this.containers[i].containerCache.width=this.containers[i].element.outerWidth(); this.containers[i].containerCache.height=this.containers[i].element.outerHeight(); }} return this; }, _createPlaceholder: function(that){ that=that||this; var className, o=that.options; if(!o.placeholder||o.placeholder.constructor===String){ className=o.placeholder; o.placeholder={ element: function(){ var nodeName=that.currentItem[0].nodeName.toLowerCase(), element=$("<" + nodeName + ">", that.document[0]) .addClass(className||that.currentItem[0].className+" ui-sortable-placeholder") .removeClass("ui-sortable-helper"); if(nodeName==="tr"){ that.currentItem.children().each(function(){ $(" ", that.document[0]) .attr("colspan", $(this).attr("colspan")||1) .appendTo(element); }); }else if(nodeName==="img"){ element.attr("src", that.currentItem.attr("src")); } if(!className){ element.css("visibility", "hidden"); } return element; }, update: function(container, p){ if(className&&!o.forcePlaceholderSize){ return; } if(!p.height()){ p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); } if(!p.width()){ p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); }} };} that.placeholder=$(o.placeholder.element.call(that.element, that.currentItem)); that.currentItem.after(that.placeholder); o.placeholder.update(that, that.placeholder); }, _contactContainers: function(event){ var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, base, cur, nearBottom, floating, innermostContainer=null, innermostIndex=null; for (i=this.containers.length - 1; i >=0; i--){ if($.contains(this.currentItem[0], this.containers[i].element[0])){ continue; } if(this._intersectsWith(this.containers[i].containerCache)){ if(innermostContainer&&$.contains(this.containers[i].element[0], innermostContainer.element[0])){ continue; } innermostContainer=this.containers[i]; innermostIndex=i; }else{ if(this.containers[i].containerCache.over){ this.containers[i]._trigger("out", event, this._uiHash(this)); this.containers[i].containerCache.over=0; }} } if(!innermostContainer){ return; } if(this.containers.length===1){ if(!this.containers[innermostIndex].containerCache.over){ this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); this.containers[innermostIndex].containerCache.over=1; }}else{ dist=10000; itemWithLeastDistance=null; floating=innermostContainer.floating||isFloating(this.currentItem); posProperty=floating ? "left":"top"; sizeProperty=floating ? "width":"height"; base=this.positionAbs[posProperty] + this.offset.click[posProperty]; for (j=this.items.length - 1; j >=0; j--){ if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])){ continue; } if(this.items[j].item[0]===this.currentItem[0]){ continue; } if(floating&&!isOverAxis(this.positionAbs.top + this.offset.click.top, this.items[j].top, this.items[j].height)){ continue; } cur=this.items[j].item.offset()[posProperty]; nearBottom=false; if(Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)){ nearBottom=true; cur +=this.items[j][sizeProperty]; } if(Math.abs(cur - base) < dist){ dist=Math.abs(cur - base); itemWithLeastDistance=this.items[j]; this.direction=nearBottom ? "up": "down"; }} if(!itemWithLeastDistance&&!this.options.dropOnEmpty){ return; } if(this.currentContainer===this.containers[innermostIndex]){ return; } itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true):this._rearrange(event, null, this.containers[innermostIndex].element, true); this._trigger("change", event, this._uiHash()); this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); this.currentContainer=this.containers[innermostIndex]; this.options.placeholder.update(this.currentContainer, this.placeholder); this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); this.containers[innermostIndex].containerCache.over=1; }}, _createHelper: function(event){ var o=this.options, helper=$.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])):(o.helper==="clone" ? this.currentItem.clone():this.currentItem); if(!helper.parents("body").length){ $(o.appendTo!=="parent" ? o.appendTo:this.currentItem[0].parentNode)[0].appendChild(helper[0]); } if(helper[0]===this.currentItem[0]){ this._storedCSS={ width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };} if(!helper[0].style.width||o.forceHelperSize){ helper.width(this.currentItem.width()); } if(!helper[0].style.height||o.forceHelperSize){ helper.height(this.currentItem.height()); } return helper; }, _adjustOffsetFromHelper: function(obj){ if(typeof obj==="string"){ obj=obj.split(" "); } if($.isArray(obj)){ obj={left: +obj[0], top: +obj[1]||0};} if("left" in obj){ this.offset.click.left=obj.left + this.margins.left; } if("right" in obj){ this.offset.click.left=this.helperProportions.width - obj.right + this.margins.left; } if("top" in obj){ this.offset.click.top=obj.top + this.margins.top; } if("bottom" in obj){ this.offset.click.top=this.helperProportions.height - obj.bottom + this.margins.top; }}, _getParentOffset: function(){ this.offsetParent=this.helper.offsetParent(); var po=this.offsetParent.offset(); if(this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&$.contains(this.scrollParent[0], this.offsetParent[0])){ po.left +=this.scrollParent.scrollLeft(); po.top +=this.scrollParent.scrollTop(); } if(this.offsetParent[0]===document.body||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==="html"&&$.ui.ie)){ po={ top: 0, left: 0 };} return { top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10)||0), left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10)||0) };}, _getRelativeOffset: function(){ if(this.cssPosition==="relative"){ var p=this.currentItem.position(); return { top: p.top - (parseInt(this.helper.css("top"),10)||0) + this.scrollParent.scrollTop(), left: p.left - (parseInt(this.helper.css("left"),10)||0) + this.scrollParent.scrollLeft() };}else{ return { top: 0, left: 0 };}}, _cacheMargins: function(){ this.margins={ left: (parseInt(this.currentItem.css("marginLeft"),10)||0), top: (parseInt(this.currentItem.css("marginTop"),10)||0) };}, _cacheHelperProportions: function(){ this.helperProportions={ width: this.helper.outerWidth(), height: this.helper.outerHeight() };}, _setContainment: function(){ var ce, co, over, o=this.options; if(o.containment==="parent"){ o.containment=this.helper[0].parentNode; } if(o.containment==="document"||o.containment==="window"){ this.containment=[ 0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, $(o.containment==="document" ? document:window).width() - this.helperProportions.width - this.margins.left, ($(o.containment==="document" ? document:window).height()||document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; } if(!(/^(document|window|parent)$/).test(o.containment)){ ce=$(o.containment)[0]; co=$(o.containment).offset(); over=($(ce).css("overflow")!=="hidden"); this.containment=[ co.left + (parseInt($(ce).css("borderLeftWidth"),10)||0) + (parseInt($(ce).css("paddingLeft"),10)||0) - this.margins.left, co.top + (parseInt($(ce).css("borderTopWidth"),10)||0) + (parseInt($(ce).css("paddingTop"),10)||0) - this.margins.top, co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10)||0) - (parseInt($(ce).css("paddingRight"),10)||0) - this.helperProportions.width - this.margins.left, co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10)||0) - (parseInt($(ce).css("paddingBottom"),10)||0) - this.helperProportions.height - this.margins.top ]; }}, _convertPositionTo: function(d, pos){ if(!pos){ pos=this.position; } var mod=d==="absolute" ? 1:-1, scroll=this.cssPosition==="absolute"&&!(this.scrollParent[0]!==document&&$.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent:this.scrollParent, scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName); return { top: ( pos.top + this.offset.relative.top * mod + this.offset.parent.top * mod - (( this.cssPosition==="fixed" ? -this.scrollParent.scrollTop():(scrollIsRootNode ? 0:scroll.scrollTop())) * mod) ), left: ( pos.left + this.offset.relative.left * mod + this.offset.parent.left * mod - (( this.cssPosition==="fixed" ? -this.scrollParent.scrollLeft():scrollIsRootNode ? 0:scroll.scrollLeft()) * mod) ) };}, _generatePosition: function(event){ var top, left, o=this.options, pageX=event.pageX, pageY=event.pageY, scroll=this.cssPosition==="absolute"&&!(this.scrollParent[0]!==document&&$.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent:this.scrollParent, scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName); if(this.cssPosition==="relative"&&!(this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0])){ this.offset.relative=this._getRelativeOffset(); } if(this.originalPosition){ if(this.containment){ if(event.pageX - this.offset.click.left < this.containment[0]){ pageX=this.containment[0] + this.offset.click.left; } if(event.pageY - this.offset.click.top < this.containment[1]){ pageY=this.containment[1] + this.offset.click.top; } if(event.pageX - this.offset.click.left > this.containment[2]){ pageX=this.containment[2] + this.offset.click.left; } if(event.pageY - this.offset.click.top > this.containment[3]){ pageY=this.containment[3] + this.offset.click.top; }} if(o.grid){ top=this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; pageY=this.containment ?((top - this.offset.click.top >=this.containment[1]&&top - this.offset.click.top <=this.containment[3]) ? top:((top - this.offset.click.top >=this.containment[1]) ? top - o.grid[1]:top + o.grid[1])):top; left=this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; pageX=this.containment ?((left - this.offset.click.left >=this.containment[0]&&left - this.offset.click.left <=this.containment[2]) ? left:((left - this.offset.click.left >=this.containment[0]) ? left - o.grid[0]:left + o.grid[0])):left; }} return { top: ( pageY - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (( this.cssPosition==="fixed" ? -this.scrollParent.scrollTop():(scrollIsRootNode ? 0:scroll.scrollTop()))) ), left: ( pageX - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (( this.cssPosition==="fixed" ? -this.scrollParent.scrollLeft():scrollIsRootNode ? 0:scroll.scrollLeft())) ) };}, _rearrange: function(event, i, a, hardRefresh){ a ? a[0].appendChild(this.placeholder[0]):i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction==="down" ? i.item[0]:i.item[0].nextSibling)); this.counter=this.counter ? ++this.counter:1; var counter=this.counter; this._delay(function(){ if(counter===this.counter){ this.refreshPositions(!hardRefresh); }}); }, _clear: function(event, noPropagation){ this.reverting=false; var i, delayedTriggers=[]; if(!this._noFinalSort&&this.currentItem.parent().length){ this.placeholder.before(this.currentItem); } this._noFinalSort=null; if(this.helper[0]===this.currentItem[0]){ for(i in this._storedCSS){ if(this._storedCSS[i]==="auto"||this._storedCSS[i]==="static"){ this._storedCSS[i]=""; }} this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); }else{ this.currentItem.show(); } if(this.fromOutside&&!noPropagation){ delayedTriggers.push(function(event){ this._trigger("receive", event, this._uiHash(this.fromOutside)); }); } if((this.fromOutside||this.domPosition.prev!==this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!==this.currentItem.parent()[0])&&!noPropagation){ delayedTriggers.push(function(event){ this._trigger("update", event, this._uiHash()); }); } if(this!==this.currentContainer){ if(!noPropagation){ delayedTriggers.push(function(event){ this._trigger("remove", event, this._uiHash()); }); delayedTriggers.push((function(c){ return function(event){ c._trigger("receive", event, this._uiHash(this)); };}).call(this, this.currentContainer)); delayedTriggers.push((function(c){ return function(event){ c._trigger("update", event, this._uiHash(this)); };}).call(this, this.currentContainer)); }} for (i=this.containers.length - 1; i >=0; i--){ if(!noPropagation){ delayedTriggers.push((function(c){ return function(event){ c._trigger("deactivate", event, this._uiHash(this)); };}).call(this, this.containers[i])); } if(this.containers[i].containerCache.over){ delayedTriggers.push((function(c){ return function(event){ c._trigger("out", event, this._uiHash(this)); };}).call(this, this.containers[i])); this.containers[i].containerCache.over=0; }} if(this.storedCursor){ this.document.find("body").css("cursor", this.storedCursor); this.storedStylesheet.remove(); } if(this._storedOpacity){ this.helper.css("opacity", this._storedOpacity); } if(this._storedZIndex){ this.helper.css("zIndex", this._storedZIndex==="auto" ? "":this._storedZIndex); } this.dragging=false; if(this.cancelHelperRemoval){ if(!noPropagation){ this._trigger("beforeStop", event, this._uiHash()); for (i=0; i < delayedTriggers.length; i++){ delayedTriggers[i].call(this, event); } this._trigger("stop", event, this._uiHash()); } this.fromOutside=false; return false; } if(!noPropagation){ this._trigger("beforeStop", event, this._uiHash()); } this.placeholder[0].parentNode.removeChild(this.placeholder[0]); if(this.helper[0]!==this.currentItem[0]){ this.helper.remove(); } this.helper=null; if(!noPropagation){ for (i=0; i < delayedTriggers.length; i++){ delayedTriggers[i].call(this, event); } this._trigger("stop", event, this._uiHash()); } this.fromOutside=false; return true; }, _trigger: function(){ if($.Widget.prototype._trigger.apply(this, arguments)===false){ this.cancel(); }}, _uiHash: function(_inst){ var inst=_inst||this; return { helper: inst.helper, placeholder: inst.placeholder||$([]), position: inst.position, originalPosition: inst.originalPosition, offset: inst.positionAbs, item: inst.currentItem, sender: _inst ? _inst.element:null };}}); })(jQuery); (function($, undefined){ var dataSpace="ui-effects-"; $.effects={ effect: {}}; (function(jQuery, undefined){ var stepHooks="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", rplusequals=/^([\-+])=\s*(\d+\.?\d*)/, stringParsers=[{ re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function(execResult){ return [ execResult[ 1 ], execResult[ 2 ], execResult[ 3 ], execResult[ 4 ] ]; }}, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function(execResult){ return [ execResult[ 1 ] * 2.55, execResult[ 2 ] * 2.55, execResult[ 3 ] * 2.55, execResult[ 4 ] ]; }}, { re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function(execResult){ return [ parseInt(execResult[ 1 ], 16), parseInt(execResult[ 2 ], 16), parseInt(execResult[ 3 ], 16) ]; }}, { re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function(execResult){ return [ parseInt(execResult[ 1 ] + execResult[ 1 ], 16), parseInt(execResult[ 2 ] + execResult[ 2 ], 16), parseInt(execResult[ 3 ] + execResult[ 3 ], 16) ]; }}, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: "hsla", parse: function(execResult){ return [ execResult[ 1 ], execResult[ 2 ] / 100, execResult[ 3 ] / 100, execResult[ 4 ] ]; }}], color=jQuery.Color=function(color, green, blue, alpha){ return new jQuery.Color.fn.parse(color, green, blue, alpha); }, spaces={ rgba: { props: { red: { idx: 0, type: "byte" }, green: { idx: 1, type: "byte" }, blue: { idx: 2, type: "byte" }} }, hsla: { props: { hue: { idx: 0, type: "degrees" }, saturation: { idx: 1, type: "percent" }, lightness: { idx: 2, type: "percent" }} }}, propTypes={ "byte": { floor: true, max: 255 }, "percent": { max: 1 }, "degrees": { mod: 360, floor: true }}, support=color.support={}, supportElem=jQuery("

    ")[ 0 ], colors, each=jQuery.each; supportElem.style.cssText="background-color:rgba(1,1,1,.5)"; support.rgba=supportElem.style.backgroundColor.indexOf("rgba") > -1; each(spaces, function(spaceName, space){ space.cache="_" + spaceName; space.props.alpha={ idx: 3, type: "percent", def: 1 };}); function clamp(value, prop, allowEmpty){ var type=propTypes[ prop.type ]||{}; if(value==null){ return (allowEmpty||!prop.def) ? null:prop.def; } value=type.floor ? ~~value:parseFloat(value); if(isNaN(value)){ return prop.def; } if(type.mod){ return (value + type.mod) % type.mod; } return 0 > value ? 0:type.max < value ? type.max:value; } function stringParse(string){ var inst=color(), rgba=inst._rgba=[]; string=string.toLowerCase(); each(stringParsers, function(i, parser){ var parsed, match=parser.re.exec(string), values=match&&parser.parse(match), spaceName=parser.space||"rgba"; if(values){ parsed=inst[ spaceName ](values); inst[ spaces[ spaceName ].cache ]=parsed[ spaces[ spaceName ].cache ]; rgba=inst._rgba=parsed._rgba; return false; }}); if(rgba.length){ if(rgba.join()==="0,0,0,0"){ jQuery.extend(rgba, colors.transparent); } return inst; } return colors[ string ]; } color.fn=jQuery.extend(color.prototype, { parse: function(red, green, blue, alpha){ if(red===undefined){ this._rgba=[ null, null, null, null ]; return this; } if(red.jquery||red.nodeType){ red=jQuery(red).css(green); green=undefined; } var inst=this, type=jQuery.type(red), rgba=this._rgba=[]; if(green!==undefined){ red=[ red, green, blue, alpha ]; type="array"; } if(type==="string"){ return this.parse(stringParse(red)||colors._default); } if(type==="array"){ each(spaces.rgba.props, function(key, prop){ rgba[ prop.idx ]=clamp(red[ prop.idx ], prop); }); return this; } if(type==="object"){ if(red instanceof color){ each(spaces, function(spaceName, space){ if(red[ space.cache ]){ inst[ space.cache ]=red[ space.cache ].slice(); }}); }else{ each(spaces, function(spaceName, space){ var cache=space.cache; each(space.props, function(key, prop){ if(!inst[ cache ]&&space.to){ if(key==="alpha"||red[ key ]==null){ return; } inst[ cache ]=space.to(inst._rgba); } inst[ cache ][ prop.idx ]=clamp(red[ key ], prop, true); }); if(inst[ cache ]&&jQuery.inArray(null, inst[ cache ].slice(0, 3)) < 0){ inst[ cache ][ 3 ]=1; if(space.from){ inst._rgba=space.from(inst[ cache ]); }} }); } return this; }}, is: function(compare){ var is=color(compare), same=true, inst=this; each(spaces, function(_, space){ var localCache, isCache=is[ space.cache ]; if(isCache){ localCache=inst[ space.cache ]||space.to&&space.to(inst._rgba)||[]; each(space.props, function(_, prop){ if(isCache[ prop.idx ]!=null){ same=(isCache[ prop.idx ]===localCache[ prop.idx ]); return same; }}); } return same; }); return same; }, _space: function(){ var used=[], inst=this; each(spaces, function(spaceName, space){ if(inst[ space.cache ]){ used.push(spaceName); }}); return used.pop(); }, transition: function(other, distance){ var end=color(other), spaceName=end._space(), space=spaces[ spaceName ], startColor=this.alpha()===0 ? color("transparent"):this, start=startColor[ space.cache ]||space.to(startColor._rgba), result=start.slice(); end=end[ space.cache ]; each(space.props, function(key, prop){ var index=prop.idx, startValue=start[ index ], endValue=end[ index ], type=propTypes[ prop.type ]||{}; if(endValue===null){ return; } if(startValue===null){ result[ index ]=endValue; }else{ if(type.mod){ if(endValue - startValue > type.mod / 2){ startValue +=type.mod; }else if(startValue - endValue > type.mod / 2){ startValue -=type.mod; }} result[ index ]=clamp(( endValue - startValue) * distance + startValue, prop); }}); return this[ spaceName ](result); }, blend: function(opaque){ if(this._rgba[ 3 ]===1){ return this; } var rgb=this._rgba.slice(), a=rgb.pop(), blend=color(opaque)._rgba; return color(jQuery.map(rgb, function(v, i){ return(1 - a) * blend[ i ] + a * v; })); }, toRgbaString: function(){ var prefix="rgba(", rgba=jQuery.map(this._rgba, function(v, i){ return v==null ?(i > 2 ? 1:0):v; }); if(rgba[ 3 ]===1){ rgba.pop(); prefix="rgb("; } return prefix + rgba.join() + ")"; }, toHslaString: function(){ var prefix="hsla(", hsla=jQuery.map(this.hsla(), function(v, i){ if(v==null){ v=i > 2 ? 1:0; } if(i&&i < 3){ v=Math.round(v * 100) + "%"; } return v; }); if(hsla[ 3 ]===1){ hsla.pop(); prefix="hsl("; } return prefix + hsla.join() + ")"; }, toHexString: function(includeAlpha){ var rgba=this._rgba.slice(), alpha=rgba.pop(); if(includeAlpha){ rgba.push(~~(alpha * 255)); } return "#" + jQuery.map(rgba, function(v){ v=(v||0).toString(16); return v.length===1 ? "0" + v:v; }).join(""); }, toString: function(){ return this._rgba[ 3 ]===0 ? "transparent":this.toRgbaString(); }}); color.fn.parse.prototype=color.fn; function hue2rgb(p, q, h){ h=(h + 1) % 1; if(h * 6 < 1){ return p + (q - p) * h * 6; } if(h * 2 < 1){ return q; } if(h * 3 < 2){ return p + (q - p) * ((2/3) - h) * 6; } return p; } spaces.hsla.to=function(rgba){ if(rgba[ 0 ]==null||rgba[ 1 ]==null||rgba[ 2 ]==null){ return [ null, null, null, rgba[ 3 ] ]; } var r=rgba[ 0 ] / 255, g=rgba[ 1 ] / 255, b=rgba[ 2 ] / 255, a=rgba[ 3 ], max=Math.max(r, g, b), min=Math.min(r, g, b), diff=max - min, add=max + min, l=add * 0.5, h, s; if(min===max){ h=0; }else if(r===max){ h=(60 *(g - b) / diff) + 360; }else if(g===max){ h=(60 *(b - r) / diff) + 120; }else{ h=(60 *(r - g) / diff) + 240; } if(diff===0){ s=0; }else if(l <=0.5){ s=diff / add; }else{ s=diff /(2 - add); } return [ Math.round(h) % 360, s, l, a==null ? 1:a ]; }; spaces.hsla.from=function(hsla){ if(hsla[ 0 ]==null||hsla[ 1 ]==null||hsla[ 2 ]==null){ return [ null, null, null, hsla[ 3 ] ]; } var h=hsla[ 0 ] / 360, s=hsla[ 1 ], l=hsla[ 2 ], a=hsla[ 3 ], q=l <=0.5 ? l *(1 + s):l + s - l * s, p=2 * l - q; return [ Math.round(hue2rgb(p, q, h +(1 / 3)) * 255), Math.round(hue2rgb(p, q, h) * 255), Math.round(hue2rgb(p, q, h -(1 / 3)) * 255), a ]; }; each(spaces, function(spaceName, space){ var props=space.props, cache=space.cache, to=space.to, from=space.from; color.fn[ spaceName ]=function(value){ if(to&&!this[ cache ]){ this[ cache ]=to(this._rgba); } if(value===undefined){ return this[ cache ].slice(); } var ret, type=jQuery.type(value), arr=(type==="array"||type==="object") ? value:arguments, local=this[ cache ].slice(); each(props, function(key, prop){ var val=arr[ type==="object" ? key:prop.idx ]; if(val==null){ val=local[ prop.idx ]; } local[ prop.idx ]=clamp(val, prop); }); if(from){ ret=color(from(local)); ret[ cache ]=local; return ret; }else{ return color(local); }}; each(props, function(key, prop){ if(color.fn[ key ]){ return; } color.fn[ key ]=function(value){ var vtype=jQuery.type(value), fn=(key==="alpha" ?(this._hsla ? "hsla":"rgba"):spaceName), local=this[ fn ](), cur=local[ prop.idx ], match; if(vtype==="undefined"){ return cur; } if(vtype==="function"){ value=value.call(this, cur); vtype=jQuery.type(value); } if(value==null&&prop.empty){ return this; } if(vtype==="string"){ match=rplusequals.exec(value); if(match){ value=cur + parseFloat(match[ 2 ]) *(match[ 1 ]==="+" ? 1:-1); }} local[ prop.idx ]=value; return this[ fn ](local); };}); }); color.hook=function(hook){ var hooks=hook.split(" "); each(hooks, function(i, hook){ jQuery.cssHooks[ hook ]={ set: function(elem, value){ var parsed, curElem, backgroundColor=""; if(value!=="transparent"&&(jQuery.type(value)!=="string"||(parsed=stringParse(value)))){ value=color(parsed||value); if(!support.rgba&&value._rgba[ 3 ]!==1){ curElem=hook==="backgroundColor" ? elem.parentNode:elem; while ( (backgroundColor===""||backgroundColor==="transparent") && curElem&&curElem.style ){ try { backgroundColor=jQuery.css(curElem, "backgroundColor"); curElem=curElem.parentNode; } catch(e){ }} value=value.blend(backgroundColor&&backgroundColor!=="transparent" ? backgroundColor : "_default"); } value=value.toRgbaString(); } try { elem.style[ hook ]=value; } catch(e){ }} }; jQuery.fx.step[ hook ]=function(fx){ if(!fx.colorInit){ fx.start=color(fx.elem, hook); fx.end=color(fx.end); fx.colorInit=true; } jQuery.cssHooks[ hook ].set(fx.elem, fx.start.transition(fx.end, fx.pos)); };}); }; color.hook(stepHooks); jQuery.cssHooks.borderColor={ expand: function(value){ var expanded={}; each([ "Top", "Right", "Bottom", "Left" ], function(i, part){ expanded[ "border" + part + "Color" ]=value; }); return expanded; }}; colors=jQuery.Color.names={ aqua: "#00ffff", black: "#000000", blue: "#0000ff", fuchsia: "#ff00ff", gray: "#808080", green: "#008000", lime: "#00ff00", maroon: "#800000", navy: "#000080", olive: "#808000", purple: "#800080", red: "#ff0000", silver: "#c0c0c0", teal: "#008080", white: "#ffffff", yellow: "#ffff00", transparent: [ null, null, null, 0 ], _default: "#ffffff" };})(jQuery); (function(){ var classAnimationActions=[ "add", "remove", "toggle" ], shorthandStyles={ border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; $.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function(_, prop){ $.fx.step[ prop ]=function(fx){ if(fx.end!=="none"&&!fx.setAttr||fx.pos===1&&!fx.setAttr){ jQuery.style(fx.elem, prop, fx.end); fx.setAttr=true; }};}); function getElementStyles(elem){ var key, len, style=elem.ownerDocument.defaultView ? elem.ownerDocument.defaultView.getComputedStyle(elem, null) : elem.currentStyle, styles={}; if(style&&style.length&&style[ 0 ]&&style[ style[ 0 ] ]){ len=style.length; while(len--){ key=style[ len ]; if(typeof style[ key ]==="string"){ styles[ $.camelCase(key) ]=style[ key ]; }} }else{ for(key in style){ if(typeof style[ key ]==="string"){ styles[ key ]=style[ key ]; }} } return styles; } function styleDifference(oldStyle, newStyle){ var diff={}, name, value; for(name in newStyle){ value=newStyle[ name ]; if(oldStyle[ name ]!==value){ if(!shorthandStyles[ name ]){ if($.fx.step[ name ]||!isNaN(parseFloat(value))){ diff[ name ]=value; }} }} return diff; } if(!$.fn.addBack){ $.fn.addBack=function(selector){ return this.add(selector==null ? this.prevObject:this.prevObject.filter(selector) ); };} $.effects.animateClass=function(value, duration, easing, callback){ var o=$.speed(duration, easing, callback); return this.queue(function(){ var animated=$(this), baseClass=animated.attr("class")||"", applyClassChange, allAnimations=o.children ? animated.find("*").addBack():animated; allAnimations=allAnimations.map(function(){ var el=$(this); return { el: el, start: getElementStyles(this) };}); applyClassChange=function(){ $.each(classAnimationActions, function(i, action){ if(value[ action ]){ animated[ action + "Class" ](value[ action ]); }}); }; applyClassChange(); allAnimations=allAnimations.map(function(){ this.end=getElementStyles(this.el[ 0 ]); this.diff=styleDifference(this.start, this.end); return this; }); animated.attr("class", baseClass); allAnimations=allAnimations.map(function(){ var styleInfo=this, dfd=$.Deferred(), opts=$.extend({}, o, { queue: false, complete: function(){ dfd.resolve(styleInfo); }}); this.el.animate(this.diff, opts); return dfd.promise(); }); $.when.apply($, allAnimations.get()).done(function(){ applyClassChange(); $.each(arguments, function(){ var el=this.el; $.each(this.diff, function(key){ el.css(key, ""); }); }); o.complete.call(animated[ 0 ]); }); }); }; $.fn.extend({ addClass: (function(orig){ return function(classNames, speed, easing, callback){ return speed ? $.effects.animateClass.call(this, { add: classNames }, speed, easing, callback) : orig.apply(this, arguments); };})($.fn.addClass), removeClass: (function(orig){ return function(classNames, speed, easing, callback){ return arguments.length > 1 ? $.effects.animateClass.call(this, { remove: classNames }, speed, easing, callback) : orig.apply(this, arguments); };})($.fn.removeClass), toggleClass: (function(orig){ return function(classNames, force, speed, easing, callback){ if(typeof force==="boolean"||force===undefined){ if(!speed){ return orig.apply(this, arguments); }else{ return $.effects.animateClass.call(this, (force ? { add: classNames }:{ remove: classNames }), speed, easing, callback); }}else{ return $.effects.animateClass.call(this, { toggle: classNames }, force, speed, easing); }};})($.fn.toggleClass), switchClass: function(remove, add, speed, easing, callback){ return $.effects.animateClass.call(this, { add: add, remove: remove }, speed, easing, callback); }}); })(); (function(){ $.extend($.effects, { version: "1.10.3", save: function(element, set){ for(var i=0; i < set.length; i++){ if(set[ i ]!==null){ element.data(dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ]); }} }, restore: function(element, set){ var val, i; for(i=0; i < set.length; i++){ if(set[ i ]!==null){ val=element.data(dataSpace + set[ i ]); if(val===undefined){ val=""; } element.css(set[ i ], val); }} }, setMode: function(el, mode){ if(mode==="toggle"){ mode=el.is(":hidden") ? "show":"hide"; } return mode; }, getBaseline: function(origin, original){ var y, x; switch(origin[ 0 ]){ case "top": y=0; break; case "middle": y=0.5; break; case "bottom": y=1; break; default: y=origin[ 0 ] / original.height; } switch(origin[ 1 ]){ case "left": x=0; break; case "center": x=0.5; break; case "right": x=1; break; default: x=origin[ 1 ] / original.width; } return { x: x, y: y };}, createWrapper: function(element){ if(element.parent().is(".ui-effects-wrapper")){ return element.parent(); } var props={ width: element.outerWidth(true), height: element.outerHeight(true), "float": element.css("float") }, wrapper=$("

    ") .addClass("ui-effects-wrapper") .css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }), size={ width: element.width(), height: element.height() }, active=document.activeElement; try { active.id; } catch(e){ active=document.body; } element.wrap(wrapper); if(element[ 0 ]===active||$.contains(element[ 0 ], active)){ $(active).focus(); } wrapper=element.parent(); if(element.css("position")==="static"){ wrapper.css({ position: "relative" }); element.css({ position: "relative" }); }else{ $.extend(props, { position: element.css("position"), zIndex: element.css("z-index") }); $.each([ "top", "left", "bottom", "right" ], function(i, pos){ props[ pos ]=element.css(pos); if(isNaN(parseInt(props[ pos ], 10))){ props[ pos ]="auto"; }}); element.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" }); } element.css(size); return wrapper.css(props).show(); }, removeWrapper: function(element){ var active=document.activeElement; if(element.parent().is(".ui-effects-wrapper")){ element.parent().replaceWith(element); if(element[ 0 ]===active||$.contains(element[ 0 ], active)){ $(active).focus(); }} return element; }, setTransition: function(element, list, factor, value){ value=value||{}; $.each(list, function(i, x){ var unit=element.cssUnit(x); if(unit[ 0 ] > 0){ value[ x ]=unit[ 0 ] * factor + unit[ 1 ]; }}); return value; }}); function _normalizeArguments(effect, options, speed, callback){ if($.isPlainObject(effect)){ options=effect; effect=effect.effect; } effect={ effect: effect }; if(options==null){ options={};} if($.isFunction(options)){ callback=options; speed=null; options={};} if(typeof options==="number"||$.fx.speeds[ options ]){ callback=speed; speed=options; options={};} if($.isFunction(speed)){ callback=speed; speed=null; } if(options){ $.extend(effect, options); } speed=speed||options.duration; effect.duration=$.fx.off ? 0 : typeof speed==="number" ? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default; effect.complete=callback||options.complete; return effect; } function standardAnimationOption(option){ if(!option||typeof option==="number"||$.fx.speeds[ option ]){ return true; } if(typeof option==="string"&&!$.effects.effect[ option ]){ return true; } if($.isFunction(option)){ return true; } if(typeof option==="object"&&!option.effect){ return true; } return false; } $.fn.extend({ effect: function(){ var args=_normalizeArguments.apply(this, arguments), mode=args.mode, queue=args.queue, effectMethod=$.effects.effect[ args.effect ]; if($.fx.off||!effectMethod){ if(mode){ return this[ mode ](args.duration, args.complete); }else{ return this.each(function(){ if(args.complete){ args.complete.call(this); }}); }} function run(next){ var elem=$(this), complete=args.complete, mode=args.mode; function done(){ if($.isFunction(complete)){ complete.call(elem[0]); } if($.isFunction(next)){ next(); }} if(elem.is(":hidden") ? mode==="hide":mode==="show"){ elem[ mode ](); done(); }else{ effectMethod.call(elem[0], args, done); }} return queue===false ? this.each(run):this.queue(queue||"fx", run); }, show: (function(orig){ return function(option){ if(standardAnimationOption(option)){ return orig.apply(this, arguments); }else{ var args=_normalizeArguments.apply(this, arguments); args.mode="show"; return this.effect.call(this, args); }};})($.fn.show), hide: (function(orig){ return function(option){ if(standardAnimationOption(option)){ return orig.apply(this, arguments); }else{ var args=_normalizeArguments.apply(this, arguments); args.mode="hide"; return this.effect.call(this, args); }};})($.fn.hide), toggle: (function(orig){ return function(option){ if(standardAnimationOption(option)||typeof option==="boolean"){ return orig.apply(this, arguments); }else{ var args=_normalizeArguments.apply(this, arguments); args.mode="toggle"; return this.effect.call(this, args); }};})($.fn.toggle), cssUnit: function(key){ var style=this.css(key), val=[]; $.each([ "em", "px", "%", "pt" ], function(i, unit){ if(style.indexOf(unit) > 0){ val=[ parseFloat(style), unit ]; }}); return val; }}); })(); (function(){ var baseEasings={}; $.each([ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function(i, name){ baseEasings[ name ]=function(p){ return Math.pow(p, i + 2); };}); $.extend(baseEasings, { Sine: function(p){ return 1 - Math.cos(p * Math.PI / 2); }, Circ: function(p){ return 1 - Math.sqrt(1 - p * p); }, Elastic: function(p){ return p===0||p===1 ? p : -Math.pow(2, 8 * (p - 1)) * Math.sin(( (p - 1) * 80 - 7.5) * Math.PI / 15); }, Back: function(p){ return p * p *(3 * p - 2); }, Bounce: function(p){ var pow2, bounce=4; while(p <(( pow2=Math.pow(2, --bounce)) - 1) / 11){} return 1 / Math.pow(4, 3 - bounce) - 7.5625 * Math.pow(( pow2 * 3 - 2) / 22 - p, 2); }}); $.each(baseEasings, function(name, easeIn){ $.easing[ "easeIn" + name ]=easeIn; $.easing[ "easeOut" + name ]=function(p){ return 1 - easeIn(1 - p); }; $.easing[ "easeInOut" + name ]=function(p){ return p < 0.5 ? easeIn(p * 2) / 2 : 1 - easeIn(p * -2 + 2) / 2; };}); })(); })(jQuery); (function($, undefined){ var uid=0, hideProps={}, showProps={}; hideProps.height=hideProps.paddingTop=hideProps.paddingBottom = hideProps.borderTopWidth=hideProps.borderBottomWidth="hide"; showProps.height=showProps.paddingTop=showProps.paddingBottom = showProps.borderTopWidth=showProps.borderBottomWidth="show"; $.widget("ui.accordion", { version: "1.10.3", options: { active: 0, animate: {}, collapsible: false, event: "click", header: "> li > :first-child,> :not(li):even", heightStyle: "auto", icons: { activeHeader: "ui-icon-triangle-1-s", header: "ui-icon-triangle-1-e" }, activate: null, beforeActivate: null }, _create: function(){ var options=this.options; this.prevShow=this.prevHide=$(); this.element.addClass("ui-accordion ui-widget ui-helper-reset") .attr("role", "tablist"); if(!options.collapsible&&(options.active===false||options.active==null)){ options.active=0; } this._processPanels(); if(options.active < 0){ options.active +=this.headers.length; } this._refresh(); }, _getCreateEventData: function(){ return { header: this.active, panel: !this.active.length ? $():this.active.next(), content: !this.active.length ? $():this.active.next() };}, _createIcons: function(){ var icons=this.options.icons; if(icons){ $("") .addClass("ui-accordion-header-icon ui-icon " + icons.header) .prependTo(this.headers); this.active.children(".ui-accordion-header-icon") .removeClass(icons.header) .addClass(icons.activeHeader); this.headers.addClass("ui-accordion-icons"); }}, _destroyIcons: function(){ this.headers .removeClass("ui-accordion-icons") .children(".ui-accordion-header-icon") .remove(); }, _destroy: function(){ var contents; this.element .removeClass("ui-accordion ui-widget ui-helper-reset") .removeAttr("role"); this.headers .removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top") .removeAttr("role") .removeAttr("aria-selected") .removeAttr("aria-controls") .removeAttr("tabIndex") .each(function(){ if(/^ui-accordion/.test(this.id)){ this.removeAttribute("id"); }}); this._destroyIcons(); contents=this.headers.next() .css("display", "") .removeAttr("role") .removeAttr("aria-expanded") .removeAttr("aria-hidden") .removeAttr("aria-labelledby") .removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled") .each(function(){ if(/^ui-accordion/.test(this.id)){ this.removeAttribute("id"); }}); if(this.options.heightStyle!=="content"){ contents.css("height", ""); }}, _setOption: function(key, value){ if(key==="active"){ this._activate(value); return; } if(key==="event"){ if(this.options.event){ this._off(this.headers, this.options.event); } this._setupEvents(value); } this._super(key, value); if(key==="collapsible"&&!value&&this.options.active===false){ this._activate(0); } if(key==="icons"){ this._destroyIcons(); if(value){ this._createIcons(); }} if(key==="disabled"){ this.headers.add(this.headers.next()) .toggleClass("ui-state-disabled", !!value); }}, _keydown: function(event){ if(event.altKey||event.ctrlKey){ return; } var keyCode=$.ui.keyCode, length=this.headers.length, currentIndex=this.headers.index(event.target), toFocus=false; switch(event.keyCode){ case keyCode.RIGHT: case keyCode.DOWN: toFocus=this.headers[(currentIndex + 1) % length ]; break; case keyCode.LEFT: case keyCode.UP: toFocus=this.headers[(currentIndex - 1 + length) % length ]; break; case keyCode.SPACE: case keyCode.ENTER: this._eventHandler(event); break; case keyCode.HOME: toFocus=this.headers[ 0 ]; break; case keyCode.END: toFocus=this.headers[ length - 1 ]; break; } if(toFocus){ $(event.target).attr("tabIndex", -1); $(toFocus).attr("tabIndex", 0); toFocus.focus(); event.preventDefault(); }}, _panelKeyDown:function(event){ if(event.keyCode===$.ui.keyCode.UP&&event.ctrlKey){ $(event.currentTarget).prev().focus(); }}, refresh: function(){ var options=this.options; this._processPanels(); if(( options.active===false&&options.collapsible===true)||!this.headers.length){ options.active=false; this.active=$(); }else if(options.active===false){ this._activate(0); }else if(this.active.length&&!$.contains(this.element[ 0 ], this.active[ 0 ])){ if(this.headers.length===this.headers.find(".ui-state-disabled").length){ options.active=false; this.active=$(); }else{ this._activate(Math.max(0, options.active - 1)); }}else{ options.active=this.headers.index(this.active); } this._destroyIcons(); this._refresh(); }, _processPanels: function(){ this.headers=this.element.find(this.options.header) .addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"); this.headers.next() .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom") .filter(":not(.ui-accordion-content-active)") .hide(); }, _refresh: function(){ var maxHeight, options=this.options, heightStyle=options.heightStyle, parent=this.element.parent(), accordionId=this.accordionId="ui-accordion-" + (this.element.attr("id")||++uid); this.active=this._findActive(options.active) .addClass("ui-accordion-header-active ui-state-active ui-corner-top") .removeClass("ui-corner-all"); this.active.next() .addClass("ui-accordion-content-active") .show(); this.headers .attr("role", "tab") .each(function(i){ var header=$(this), headerId=header.attr("id"), panel=header.next(), panelId=panel.attr("id"); if(!headerId){ headerId=accordionId + "-header-" + i; header.attr("id", headerId); } if(!panelId){ panelId=accordionId + "-panel-" + i; panel.attr("id", panelId); } header.attr("aria-controls", panelId); panel.attr("aria-labelledby", headerId); }) .next() .attr("role", "tabpanel"); this.headers .not(this.active) .attr({ "aria-selected": "false", tabIndex: -1 }) .next() .attr({ "aria-expanded": "false", "aria-hidden": "true" }) .hide(); if(!this.active.length){ this.headers.eq(0).attr("tabIndex", 0); }else{ this.active.attr({ "aria-selected": "true", tabIndex: 0 }) .next() .attr({ "aria-expanded": "true", "aria-hidden": "false" }); } this._createIcons(); this._setupEvents(options.event); if(heightStyle==="fill"){ maxHeight=parent.height(); this.element.siblings(":visible").each(function(){ var elem=$(this), position=elem.css("position"); if(position==="absolute"||position==="fixed"){ return; } maxHeight -=elem.outerHeight(true); }); this.headers.each(function(){ maxHeight -=$(this).outerHeight(true); }); this.headers.next() .each(function(){ $(this).height(Math.max(0, maxHeight - $(this).innerHeight() + $(this).height())); }) .css("overflow", "auto"); }else if(heightStyle==="auto"){ maxHeight=0; this.headers.next() .each(function(){ maxHeight=Math.max(maxHeight, $(this).css("height", "").height()); }) .height(maxHeight); }}, _activate: function(index){ var active=this._findActive(index)[ 0 ]; if(active===this.active[ 0 ]){ return; } active=active||this.active[ 0 ]; this._eventHandler({ target: active, currentTarget: active, preventDefault: $.noop }); }, _findActive: function(selector){ return typeof selector==="number" ? this.headers.eq(selector):$(); }, _setupEvents: function(event){ var events={ keydown: "_keydown" }; if(event){ $.each(event.split(" "), function(index, eventName){ events[ eventName ]="_eventHandler"; }); } this._off(this.headers.add(this.headers.next())); this._on(this.headers, events); this._on(this.headers.next(), { keydown: "_panelKeyDown" }); this._hoverable(this.headers); this._focusable(this.headers); }, _eventHandler: function(event){ var options=this.options, active=this.active, clicked=$(event.currentTarget), clickedIsActive=clicked[ 0 ]===active[ 0 ], collapsing=clickedIsActive&&options.collapsible, toShow=collapsing ? $():clicked.next(), toHide=active.next(), eventData={ oldHeader: active, oldPanel: toHide, newHeader: collapsing ? $():clicked, newPanel: toShow }; event.preventDefault(); if((clickedIsActive&&!options.collapsible) || (this._trigger("beforeActivate", event, eventData)===false)){ return; } options.active=collapsing ? false:this.headers.index(clicked); this.active=clickedIsActive ? $():clicked; this._toggle(eventData); active.removeClass("ui-accordion-header-active ui-state-active"); if(options.icons){ active.children(".ui-accordion-header-icon") .removeClass(options.icons.activeHeader) .addClass(options.icons.header); } if(!clickedIsActive){ clicked .removeClass("ui-corner-all") .addClass("ui-accordion-header-active ui-state-active ui-corner-top"); if(options.icons){ clicked.children(".ui-accordion-header-icon") .removeClass(options.icons.header) .addClass(options.icons.activeHeader); } clicked .next() .addClass("ui-accordion-content-active"); }}, _toggle: function(data){ var toShow=data.newPanel, toHide=this.prevShow.length ? this.prevShow:data.oldPanel; this.prevShow.add(this.prevHide).stop(true, true); this.prevShow=toShow; this.prevHide=toHide; if(this.options.animate){ this._animate(toShow, toHide, data); }else{ toHide.hide(); toShow.show(); this._toggleComplete(data); } toHide.attr({ "aria-expanded": "false", "aria-hidden": "true" }); toHide.prev().attr("aria-selected", "false"); if(toShow.length&&toHide.length){ toHide.prev().attr("tabIndex", -1); }else if(toShow.length){ this.headers.filter(function(){ return $(this).attr("tabIndex")===0; }) .attr("tabIndex", -1); } toShow .attr({ "aria-expanded": "true", "aria-hidden": "false" }) .prev() .attr({ "aria-selected": "true", tabIndex: 0 }); }, _animate: function(toShow, toHide, data){ var total, easing, duration, that=this, adjust=0, down=toShow.length && (!toHide.length||(toShow.index() < toHide.index())), animate=this.options.animate||{}, options=down&&animate.down||animate, complete=function(){ that._toggleComplete(data); }; if(typeof options==="number"){ duration=options; } if(typeof options==="string"){ easing=options; } easing=easing||options.easing||animate.easing; duration=duration||options.duration||animate.duration; if(!toHide.length){ return toShow.animate(showProps, duration, easing, complete); } if(!toShow.length){ return toHide.animate(hideProps, duration, easing, complete); } total=toShow.show().outerHeight(); toHide.animate(hideProps, { duration: duration, easing: easing, step: function(now, fx){ fx.now=Math.round(now); }}); toShow .hide() .animate(showProps, { duration: duration, easing: easing, complete: complete, step: function(now, fx){ fx.now=Math.round(now); if(fx.prop!=="height"){ adjust +=fx.now; }else if(that.options.heightStyle!=="content"){ fx.now=Math.round(total - toHide.outerHeight() - adjust); adjust=0; }} }); }, _toggleComplete: function(data){ var toHide=data.oldPanel; toHide .removeClass("ui-accordion-content-active") .prev() .removeClass("ui-corner-top") .addClass("ui-corner-all"); if(toHide.length){ toHide.parent()[0].className=toHide.parent()[0].className; } this._trigger("activate", null, data); }}); })(jQuery); (function($, undefined){ var requestIndex=0; $.widget("ui.autocomplete", { version: "1.10.3", defaultElement: "", options: { appendTo: null, autoFocus: false, delay: 300, minLength: 1, position: { my: "left top", at: "left bottom", collision: "none" }, source: null, change: null, close: null, focus: null, open: null, response: null, search: null, select: null }, pending: 0, _create: function(){ var suppressKeyPress, suppressKeyPressRepeat, suppressInput, nodeName=this.element[0].nodeName.toLowerCase(), isTextarea=nodeName==="textarea", isInput=nodeName==="input"; this.isMultiLine = isTextarea ? true : isInput ? false : this.element.prop("isContentEditable"); this.valueMethod=this.element[ isTextarea||isInput ? "val":"text" ]; this.isNewMenu=true; this.element .addClass("ui-autocomplete-input") .attr("autocomplete", "off"); this._on(this.element, { keydown: function(event){ if(this.element.prop("readOnly")){ suppressKeyPress=true; suppressInput=true; suppressKeyPressRepeat=true; return; } suppressKeyPress=false; suppressInput=false; suppressKeyPressRepeat=false; var keyCode=$.ui.keyCode; switch(event.keyCode){ case keyCode.PAGE_UP: suppressKeyPress=true; this._move("previousPage", event); break; case keyCode.PAGE_DOWN: suppressKeyPress=true; this._move("nextPage", event); break; case keyCode.UP: suppressKeyPress=true; this._keyEvent("previous", event); break; case keyCode.DOWN: suppressKeyPress=true; this._keyEvent("next", event); break; case keyCode.ENTER: case keyCode.NUMPAD_ENTER: if(this.menu.active){ suppressKeyPress=true; event.preventDefault(); this.menu.select(event); } break; case keyCode.TAB: if(this.menu.active){ this.menu.select(event); } break; case keyCode.ESCAPE: if(this.menu.element.is(":visible")){ this._value(this.term); this.close(event); event.preventDefault(); } break; default: suppressKeyPressRepeat=true; this._searchTimeout(event); break; }}, keypress: function(event){ if(suppressKeyPress){ suppressKeyPress=false; if(!this.isMultiLine||this.menu.element.is(":visible")){ event.preventDefault(); } return; } if(suppressKeyPressRepeat){ return; } var keyCode=$.ui.keyCode; switch(event.keyCode){ case keyCode.PAGE_UP: this._move("previousPage", event); break; case keyCode.PAGE_DOWN: this._move("nextPage", event); break; case keyCode.UP: this._keyEvent("previous", event); break; case keyCode.DOWN: this._keyEvent("next", event); break; }}, input: function(event){ if(suppressInput){ suppressInput=false; event.preventDefault(); return; } this._searchTimeout(event); }, focus: function(){ this.selectedItem=null; this.previous=this._value(); }, blur: function(event){ if(this.cancelBlur){ delete this.cancelBlur; return; } clearTimeout(this.searching); this.close(event); this._change(event); }}); this._initSource(); this.menu=$("